如何获取决策树中的所有基尼指数?

我使用sklearn创建了一个决策树,这里在SciKit learn DL包下,即sklearn.tree.DecisionTreeClassifier().fit(x,y)

如何获取每一步所有可能节点的基尼指数?graphviz只给我提供了基尼指数最低的节点的基尼指数,即用于分裂的节点。

例如,下图(来自graphviz)告诉我Pclass_lowVMid右侧的基尼得分为0.408,但没有告诉我Pclass_lower或Sex_male在该步骤的基尼指数。我只知道Pclass_lower和Sex_male的基尼指数必须大于(0.408*0.7 + 0),仅此而已。

决策树


回答:

使用export_graphviz可以显示所有节点的杂质,至少在版本0.20.1中可以。

from sklearn.datasets import load_irisfrom sklearn.tree import DecisionTreeClassifier, export_graphvizfrom graphviz import Sourcedata = load_iris()X, y = data.data, data.targetclf = DecisionTreeClassifier(max_depth=2, random_state=42)clf.fit(X, y)graph = Source(export_graphviz(clf, out_file=None, feature_names=data.feature_names))graph.format = 'png'graph.render('dt', view=True);

输入图像描述

所有节点的杂质值也可以通过treeimpurity属性访问。

clf.tree_.impurityarray([0.66666667, 0.        , 0.5       , 0.16803841, 0.04253308])

Related Posts

为什么我们在K-means聚类方法中使用kmeans.fit函数?

我在一个视频中使用K-means聚类技术,但我不明白为…

如何获取Keras中ImageDataGenerator的.flow_from_directory函数扫描的类名?

我想制作一个用户友好的GUI图像分类器,用户只需指向数…

如何查看每个词的tf-idf得分

我试图了解文档中每个词的tf-idf得分。然而,它只返…

如何修复 ‘ValueError: Found input variables with inconsistent numbers of samples: [32979, 21602]’?

我在制作一个用于情感分析的逻辑回归模型时遇到了这个问题…

如何向神经网络输入两个不同大小的输入?

我想向神经网络输入两个数据集。第一个数据集(元素)具有…

逻辑回归与机器学习有何关联

我们正在开会讨论聘请一位我们信任的顾问来做机器学习。一…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注