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