如何在构建决策树时计算分割点的熵?

给定一个二分类问题:

enter image description here

有四个正例和五个负例。因此,P(+) = 4/9,P(−) = 5/9。训练样本的熵为−4/9 log2(4/9) − 5/9 log2(5/9) = 0.9911。

对于a3,它是一个连续属性,我想找到每个分割的信息增益。

所以我将a3的值按升序排序并找到它们的分割点。但我该如何计算它们的熵呢?

给出的答案是:

enter image description here

上图中的信息增益列只是0.9911 – 熵。

但我该如何找到熵呢?

熵的公式是:

enter image description here

但我不明白如何使用这个公式来计算分割点的熵。


回答:

当你按a3 = 3.5分割数据时,例如,有两个实例进入一个分割,其余七个实例进入另一个分割。你应该计算每个分割的熵,然后对这两个熵进行加权平均。对于a3 = 3.5,以下Python代码可以为你完成计算:

import numpy as np
entropy1 = -(1/2)*np.log2(1/2) - (1/2)*np.log2(1/2)
entropy2 = -(3/7)*np.log2(3/7) - (4/7)*np.log2(4/7)
entropy = (2/9)*entropy1 + (7/9)*entropy2

Related Posts

L1-L2正则化的不同系数

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

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

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

f1_score metric in lightgbm

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

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

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

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

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

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

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

发表回复

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