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

时间:2013-05-06 06:06:24

标签: python machine-learning classification scikit-learn

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

1 个答案:

答案 0 :(得分:8)

您只能访问已用作拆分节点的要素的信息增益(或基尼杂质)。属性DecisionTreeClassifier.tree_.best_error[i]保存第i个节点在特征DecisionTreeClassifier.tree_.feature[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