如何在构建决策树时找到分裂点的熵?

时间:2017-03-24 09:39:05

标签: machine-learning classification decision-tree entropy

给出二进制分类问题:

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

但是我不明白如何使用这个公式来找到分裂点的熵。

1 个答案:

答案 0 :(得分:2)

例如,按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