如何从 scikit-learn DecisionTreeClassifier 获取信息增益?

Posted

技术标签:

【中文标题】如何从 scikit-learn DecisionTreeClassifier 获取信息增益?【英文标题】:How to obtain information gain from a scikit-learn DecisionTreeClassifier? 【发布时间】:2013-04-29 20:40:55 【问题描述】:

我看到 DecisionTreeClassifier 接受criteria='entropy',这意味着它必须使用信息增益作为分割决策树的标准。 我需要的是每个特征在根级别的信息增益,当它即将分裂根节点时。

【问题讨论】:

【参考方案1】:

您只能访问已用作拆分节点的特征的信息增益(或基尼杂质)。属性DecisionTreeClassifier.tree_.best_error[i] 保存特征DecisionTreeClassifier.tree_.feature[i] 上第i 个节点分裂的熵。如果您想要到达第 i 个节点的所有示例的熵,请查看 DecisionTreeClassifier.tree_.init_error[i]

有关更多信息,请参阅此处的文档:https://github.com/scikit-learn/scikit-learn/blob/dacfd8bd5d943cb899ed8cd423aaf11b4f27c186/sklearn/tree/_tree.pyx#L64

如果你想访问每个特征的熵(在某个分裂节点) - 你需要修改函数find_best_splithttps://github.com/scikit-learn/scikit-learn/blob/master/sklearn/tree/_tree.pyx#L713

【讨论】:

我没有意识到 github 上有文档。谢谢。

以上是关于如何从 scikit-learn DecisionTreeClassifier 获取信息增益?的主要内容,如果未能解决你的问题,请参考以下文章

scikit-learn 决策树节点深度

使用 RandomForestClassifier.decision_path,我如何判断分类器用于做出决策的样本?

如何从 scikit-learn 决策树中提取决策规则?

如何从 scikit-learn 决策树中提取决策规则?

如何从 scikit-learn 决策树中提取决策规则?

如何从 scikit-learn 决策树中提取决策规则?