我是靠谱客的博主 眯眯眼电话,最近开发中收集的这篇文章主要介绍【机器学习sklearn】决策树可视化方法说明可视化结果,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

决策树可视化

  • 说明
  • 可视化结果


说明

  • 决策树相关内容,详情可见 决策树算法

Graphviz是一个开源的图(Graph)可视化软件,采用抽象的图和网络来表示结构化的信息。在数据科学领域,Graphviz的一个用途就是实现决策树可视化。为了将决策树可视化,首先需要创建一个dot文件来描述决策树,使用Graphviz将dot文件转换为图形文件,如png、jpg等。

  • 安装graphviz库

详细安装过程,可参考Graphviz安装及使用-决策树可视化

pip install graphviz

或者用conda安装graphviz

conda install python-graphviz

通过export_graphviz()方法生成dot_data,此时的dot_data是一个字符串类型的数据

tree.export_graphviz(clf,
                 out_file="tree.dot",
                 feature_names = fn, 
                 class_names=cn,
                 filled = True)

可以使用scikit-learn的tree.plot_tree方法来利用matplotlib将决策树可视化

tree.plot_tree(clf);

可视化结果

代码如下(示例):

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn import tree
import graphviz
# Graphviz是一个开源的图(Graph)可视化软件,采用抽象的图和网络来表示结构化的信息

# 决策树可视化方法

# 加载数据集
data = load_iris()
# 转换成.DataFrame形式
df = pd.DataFrame(data.data, columns = data.feature_names)
# 添加品种列
df['Species'] = data.target

# 用数值替代品种名作为标签
target = np.unique(data.target)
target_names = np.unique(data.target_names)
targets = dict(zip(target, target_names))
df['Species'] = df['Species'].replace(targets)

# 提取数据和标签
X = df.drop(columns="Species")
y = df["Species"]
feature_names = X.columns
labels = y.unique()

X_train, test_x, y_train, test_lab = train_test_split(X,y,
                                                 test_size = 0.4,
                                                 random_state = 42)
model = DecisionTreeClassifier(max_depth =3, random_state = 42)
model.fit(X_train, y_train)

# 1. 以文字形式输出树
text_representation = tree.export_text(model)
print(text_representation)

# 2. 用图片画出
# 使用scikit-learn的tree.plot_tree方法来利用matplotlib将决策树可视化
plt.figure(figsize=(30,10), facecolor ='g') #
a = tree.plot_tree(model,
                   feature_names = feature_names,
                   class_names = labels,
                   rounded = True,
                   filled = True,
                   fontsize=14)
plt.show()

# 3. 使用Graphviz得到的决策树可视化
# 将决策树模型导出为dot文件
# DOT data
dot_data = tree.export_graphviz(model, out_file=None,
                                feature_names=data.feature_names,
                                class_names=data.target_names,
                                filled=True)

# Draw graph
graph = graphviz.Source(dot_data, format="png")
graph.render('DecisionTree')

decisiontree

最后

以上就是眯眯眼电话为你收集整理的【机器学习sklearn】决策树可视化方法说明可视化结果的全部内容,希望文章能够帮你解决【机器学习sklearn】决策树可视化方法说明可视化结果所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部