鉴于二进制分类问题:
有四个正面例子和五个负面例子 . 因此,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中的以下代码为您完成:
a3 = 3.5
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
1 回答
例如,当您按
a3 = 3.5
拆分数据时,两个实例将进入一个拆分,其余七个实例进入另一个拆分 . 你应该计算每个分裂的熵,然后对这两个熵进行加权平均 . 对于a3 = 3.5
,python中的以下代码为您完成: