首选建立一个决策树模型
使用鸢尾花数据集建立一个简单的决策树模型
from sklearn.datasets import load_iris
from sklearn import tree
clf = tree.DecisionTreeClassifier(random_state=0)
iris = load_iris()
clf = clf.fit(iris.data, iris.target)
可视化决策树
tree.plot_tree(clf,
feature_names=iris.feature_names, # 特征名字
impurity=False, # 是否现实每个叶子的不纯度
rounded=True, # 圆角方框
filled=True, # 颜色填充
label='none', # 写上class、value等标签吗?
class_names=iris.target_names, # 类标签 名字
fontsize=13,
precision=1 # 判断阈值和不纯度等的小数点保留1位
)
决策树怎么看
- 根节点:从树的最顶部开始,根节点表示数据集的起始划分点,通常是基于某个特征的最佳分裂准则(如基尼不纯度、信息增益等)。
- 分支:每个内部节点(非叶节点)代表一个特征的测试条件,根据特征的不同取值,数据被划分到不同的子集。箭头指向表示取值条件的方向。
- 叶节点:树的末端节点,没有子节点,代表一个类别或者预测结果。叶节点上通常会有“value”或“class”等信息,表示该节点下数据的多数类别或预测的平均值(针对回归任务)。
- 特征名称与阈值:每个内部节点上会标注用来划分数据的特征名称及其阈值如果是离散特征。
- 样本数量与比例:在某些可视化工具中,每个节点旁边可能会显示到达该节点的样本数量以及该节点占总样本的比例,有助于理解数据如何被分配。
- 决策路径:从根节点沿着箭头到某个叶节点的路径,展示了对于一个具体样本,根据其特征值是如何一步步被分类的。
- 重要性排序:通过观察树的结构,可以大致看出哪些特征在决策中起决定作用,越靠近根部的特征通常对模型的贡献越大。
当决策树分叉时,通常一个方向代表特征值满足某个条件(可以理解为“判断为真”),另一个方向则代表不满足该条件(即“判断为假”)。
例如,如果一个节点写着“petal width <= 0.8”,那么从这个节点延伸出去的左侧分支可能代表年龄petal width <= 0.8的情况(判断年龄petal width <= 0.8为真),右侧分支则代表大于0.8的情况(判断为假)。
比如第一个是根节点,从上到下依次是,判断条件、样本数量、三个类的样本数量分别是多少、类别标签
Reference
https://scikit-learn.org/stable/modules/generated/sklearn.tree.plot_tree.html
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。