给定一个二进制分类问题:

machine-learning - 建立决策树时如何找到 split 点的熵?-LMLPHP

有四个正面的例子和五个负面的例子。从而,
P(+)= 4/9,P(-)= 5/9。训练示例的熵为
−4/9 log2(4/9)− 5/9 log2(5/9)= 0.9911。

对于a3(这是一个连续属性),我想查找每个拆分的信息增益。

因此,我按升序对a3值进行排序并找到它们的分割点。但是,如何计算它们的熵?

给出的答案是:

machine-learning - 建立决策树时如何找到 split 点的熵?-LMLPHP

上图中的“信息增益”列仅为0.9911-熵。

但是如何找到熵呢?

熵的公式为:

machine-learning - 建立决策树时如何找到 split 点的熵?-LMLPHP

但是我不理解如何使用该公式来找到分裂点的熵。

最佳答案

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

关于machine-learning - 建立决策树时如何找到 split 点的熵?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42995958/

10-12 16:42
查看更多