给定一个二分类问题:
有四个正例和五个负例。因此,P(+) = 4/9,P(−) = 5/9。训练样本的熵为−4/9 log2(4/9) − 5/9 log2(5/9) = 0.9911。
对于a3,它是一个连续属性,我想找到每个分割的信息增益。
所以我将a3的值按升序排序并找到它们的分割点。但我该如何计算它们的熵呢?
给出的答案是:
上图中的信息增益列只是0.9911 – 熵。
但我该如何找到熵呢?
熵的公式是:
但我不明白如何使用这个公式来计算分割点的熵。
回答:
当你按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