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

我使用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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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