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

我注意到DecisionTreeClassifier接受参数criterion=’entropy’,这意味着它在分裂决策树时使用信息增益作为标准。我需要的是在即将分裂根节点时,每个特征在根级别的信息增益。


回答:

您只能访问已用作分裂节点的特征的信息增益(或基尼不纯度)。属性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

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注