【机器学习基础】让人惊艳的决策树可视化

 本文目标

本文的目标是引入dtreeviz来可视化分类决策树,比scikit-learn包自带的可视化效果更好。我们将在Scikit学习使用iris数据集学习决策树教程。

请注意,如果我们使用决策树进行回归,可视化效果会有所不同。

       【机器学习基础】让人惊艳的决策树可视化_第1张图片      

 scikit-learn和dtreeviz可视化对比

       【机器学习基础】让人惊艳的决策树可视化_第2张图片      

 

前期准备

首先使用pip或conda命令安装模块,如下所示。

pip install dtreeviz
pip install graphviz #这个包需要下载安装,并配置对应的变量环境

 

加载数据集

import numpy as np
from sklearn.datasets import load_iris, load_boston
from sklearn import tree




iris = 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 model
clf = tree.DecisionTreeClassifier()
clf = clf.fit(iris.data, iris.target)

 

可视化决策树

Scikit-learn

import graphviz 
dot_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 

 

       【机器学习基础】让人惊艳的决策树可视化_第3张图片      

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

       【机器学习基础】让人惊艳的决策树可视化_第4张图片      

 

通过上面的对比,发现Treeviz的可视化会更好

你可以在每个节点上看到每个类的分布

你可以看到每个分割的决策边界在哪里

你可以看到每片叶子上的样品大小与圆的大小相同

原文名称:How to visualize a decision tree beyond scikit-learn

原文链接:https://h1ros.github.io/posts/how-to-visualize-a-decision-tree-beyond-scikit-learn/


往期精彩回顾



适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑
获取本站知识星球优惠券,复制链接直接打开:
https://t.zsxq.com/qFiUFMV
本站qq群704220115。

加入微信群请扫码:

你可能感兴趣的:(可视化,决策树,人工智能,机器学习,python)