首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获得决策树中的所有基尼指数?

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

Stack Overflow用户
提问于 2018-12-10 11:29:55
回答 2查看 4.3K关注 0票数 6

我已经使用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),但仅此而已。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-11 04:19:54

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

代码语言:javascript
复制
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier, export_graphviz
from graphviz import Source

data = load_iris()
X, y = data.data, data.target

clf = 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属性中访问所有节点的杂质值。

代码语言:javascript
复制
clf.tree_.impurity
array([0.66666667, 0.        , 0.5       , 0.16803841, 0.04253308])
票数 4
EN

Stack Overflow用户

发布于 2018-12-10 11:43:40

pclass节点的基尼指数=左节点的基尼指数* (no.左侧节点的样本数/编号左侧节点上的样本+编号。右节点的样本数)+右节点的基尼指数*(否左侧节点的样本数/编号左侧节点上的样本+编号。右节点上的样本),所以这里将是

代码语言:javascript
复制
Gini index of pclass = 0 + .408 *(7/10) = 0.2856
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53699121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档