我看到DecisionTreeClassifier 接受criteria='entropy',这意味着它必须使用信息增益作为分割决策树的标准。
我需要的是根级每个特征的信息增益,当它即将 split 根节点时。
最佳答案
您只能访问已用作拆分节点的特征的信息增益(或基尼杂质)。属性 DecisionTreeClassifier.tree_.best_error[i]
保存了第 i 个节点在特征 DecisionTreeClassifier.tree_.feature[i]
上 split 的熵。如果您想要到达第 i 个节点的所有示例的熵,请查看 DecisionTreeClassifier.tree_.init_error[i]
。
有关更多信息,请参阅此处的文档:https://github.com/scikit-learn/scikit-learn/blob/dacfd8bd5d943cb899ed8cd423aaf11b4f27c186/sklearn/tree/_tree.pyx#L64
如果你想访问每个特征的熵(在某个 split 节点) - 你需要修改函数 find_best_split
https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/tree/_tree.pyx#L713
关于python - 如何从 scikit-learn DecisionTreeClassifier 获取信息增益?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16392872/