【机器学习基础】让人惊艳的决策树可视化
本文目标
本文的目标是引入dtreeviz来可视化分类决策树,比scikit-learn包自带的可视化效果更好。我们将在Scikit学习使用iris数据集学习决策树教程。
请注意,如果我们使用决策树进行回归,可视化效果会有所不同。
scikit-learn和dtreeviz可视化对比
前期准备
首先使用pip或conda命令安装模块,如下所示。
pip install dtreevizpip install graphviz #这个包需要下载安装,并配置对应的变量环境
加载数据集
import numpy as npfrom sklearn.datasets import load_iris, load_bostonfrom sklearn import treeiris = load_iris()df_iris = pd.DataFrame(iris['data'], columns=iris['feature_names'])df_iris['target'] = iris['target']df_iris.head()
sepal length (cm) | sepal width (cm) | petal length (cm) | petal width (cm) | target |
5.1 | 3.5 | 1.4 | 0.2 | 0 |
4.9 | 3 | 1.4 | 0.2 | 0 |
4.7 | 3.2 | 1.3 | 0.2 | 0 |
4.6 | 3.1 | 1.5 | 0.2 | 0 |
5 | 3.6 | 1.4 | 0.2 | 0 |
训练决策树
# Train the Decision tree modelclf = tree.DecisionTreeClassifier()clf = clf.fit(iris.data, iris.target)
可视化决策树
Scikit-learn
import graphvizdot_data = tree.export_graphviz(clf, out_file=None,feature_names=iris.feature_names,class_names=iris.target_names,filled=True, rounded=True,special_characters=True)graph = graphviz.Source(dot_data)graph
dtreeviz
from dtreeviz.trees import dtreeviz
viz = dtreeviz(clf,iris['data'],iris['target'],target_name='',feature_names=np.array(iris['feature_names']),class_names={0:'setosa',1:'versicolor',2:'virginica'})viz
通过上面的对比,发现Treeviz的可视化会更好
你可以在每个节点上看到每个类的分布
你可以看到每个分割的决策边界在哪里
你可以看到每片叶子上的样品大小与圆的大小相同
原文名称:How to visualize a decision tree beyond scikit-learn
原文链接:https://h1ros.github.io/posts/how-to-visualize-a-decision-tree-beyond-scikit-learn/
往期精彩回顾
获取本站知识星球优惠券,复制链接直接打开:
https://t.zsxq.com/qFiUFMV
本站qq群704220115。
加入微信群请扫码:
评论
