如何从 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_split
https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/tree/_tree.pyx#L713
【讨论】:
我没有意识到 github 上有文档。谢谢。以上是关于如何从 scikit-learn DecisionTreeClassifier 获取信息增益?的主要内容,如果未能解决你的问题,请参考以下文章