【发布时间】:2021-03-15 00:44:29
【问题描述】:
每次我们使用 Python (sklearn) 拟合树分类器时,我们都应该将分类数据转换为数值数据。转换后,如果我们想看看这棵树的实际样子,我们几乎无法观察到,因为我们只能看到数字。
那么,如果我想使用 Python 绘制一棵描述性树(只是想看看它在哪里分裂,它使用哪个类别。),我应该怎么做? R好像没有这种问题,但是Python有什么解决办法吗?
【问题讨论】:
标签: python decision-tree
每次我们使用 Python (sklearn) 拟合树分类器时,我们都应该将分类数据转换为数值数据。转换后,如果我们想看看这棵树的实际样子,我们几乎无法观察到,因为我们只能看到数字。
那么,如果我想使用 Python 绘制一棵描述性树(只是想看看它在哪里分裂,它使用哪个类别。),我应该怎么做? R好像没有这种问题,但是Python有什么解决办法吗?
【问题讨论】:
标签: python decision-tree
很好的问题和解释模型的非常好的练习。这是我的意见。
根据您的要求准备数据。像往常一样对分类数据进行热编码。如果属性是有序的,请使用适当的预处理。
使用 sklearn 拟合决策树。根据需要执行超参数调整。后半部分很重要,因为有时如果数据很大,绘制的决策树会变得难以阅读。
现在可以通过多种方式绘制树 - 表示为文本或表示为树的图像。
3.1 用于文本表示
from sklearn import tree
from sklearn.tree import DecisionTreeClassifier
model_instance = DecisionTreeClassifier()
model_instance.fit(X,y)
text_representation = tree.export_text(model_instance)
print(text_representation)
3.2 绘制树
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(15,8)) # I like 15,8 personally
tree.plot_tree(model_instance,feature_names,class_names,filled=True)
# if you'd like to save the tree as .png
fig.savefig("Tree.png")
有用的资源:
【讨论】: