决策树绘制

本文介绍如何使用Python和Sklearn库绘制决策树,以iris数据集为例,详细展示了从数据预处理到模型训练,再到决策树可视化的全过程。文章强调了决策树的可解释性和展示效果,同时提供了必要的代码和步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

决策树是机器学习的十大算法之一,可用于解决分类和回归问题。决策树的结构很像二叉树,通过一层一层的节点,来对我们的样本进行分类。决策树算法的可解释性非常的好,通过绘制决策树,我们可以很清楚理地解算法的工作原理,同时也方便向别人进行展示。这一节,我们的重点是画决策树,对于决策树算法的原理以及细节,我们不做深入的探讨。

我们使用iris数据集,它有150个样本,5个特征。接下来我们就以iris数据集为例,来进行决策树的绘制。

iris数据集链接:
链接:https://pan.baidu.com/s/1YCyvnNH1R56RnUDl3KxKMg
提取码:yfoh

下面是代码部分:

#导入数据分析的常用工具包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

#读取iris数据集,具体在写代码的过程中使用df.head()查看数据集
columns = ['petal_length','petal_width','calyx_length','calye_width','category']
df = pd.read_csv('D:\\Py_dataset\\iris.data',sep = ',',names = columns)

#对数据集中的非数值型特征进行转换
df['category'].unique()
[out]:array(['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'], dtype=object)
category_map = {'Iris-setosa':0,'Iris-versicolor':1,'Iris-virginica':2}
df['category'] = df['category'].map(category_map)

#建立决策树模型
from sklearn.tree import DecisionTreeClassifier
Y = df['category']
X = df.drop('category',axis = 1)
dtc = DecisionTreeClassifier(max_depth = 2)
dtc.fit(X,Y)

#对于训练好的决策树模型进行可视乎
from sklearn import tree
#把模型以及要用到的特征输入进来,转化为dot_data类型
dot_data = \
    tree.export_graphviz(
        dtc,
        out_file = None,
        feature_names = df.columns.tolist()[:4],
        filled = True,
        impurity = False,
        rounded = True
    )

import pydotplus
graph = pydotplus.graph_from_dot_data(dot_data)
graph.get_nodes()[4].set_fillcolor("#FFF2DD")
from IPython.display import Image
Image(graph.create_png())

绘制好的决策树如图所示:
iris_dtc.png

主要节点说明:
在根节点上,我们可以看到有三个值。我们的分类标准是calyx_length <= 2.45,此时的样本数量为150,value = [50,50,50]意思是我们的[0,1,2]三类样本的数量分别有50个。

在叶子结点中,我们可以看到有两个值。samples是此时该节点的样本数量,value是此时各个类别的数量。如value = [50,0,0],它表明该节点的样本都是0这个类别,已经将0类样本与其他类完全区分开了。如value = [0,49,5],它表明该节点有49个1类样本,5个2类样本,可以看到它并没完全的区分开1类和2类样本。此处我们只演示如何绘制决策树,并不考虑模型的分类效果。

绘制决策树小结:
1.绘制决策树的过程可以作为一个模板,我们在使用的时候,只需要传入自己的参数。
2.需要提前安装好两个扩展包。
2.1 安装graphviz可视化包,该包需要下载,下载好以后需要添加到路径当中。
下载graphviz-2.38.msi,然后将Graphviz安装目录下的bin文件添加到Path环境变量中。[graphviz下载链接]('https://graphviz.gitlab.io/_pages/Download/Download_windows.html
')
2.2 pip install pydotplus; pip install pydot; pip install graphviz

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值