计算特定属性的熵?
Calculating the entropy of a specific attribute?
这非常简单,但我正在学习决策树和 ID3 算法。我找到了一个非常有用的网站,我一直在关注有关熵和信息增益的所有信息,直到我到达
我不明白每个单独属性(晴天、多风、下雨)的熵是如何计算的——具体来说,p-sub-i 是如何计算的。它似乎与熵 (S) 的计算方式不同。谁能解释一下这个计算背后的过程?
要将一个节点拆分为两个不同的子节点,一种方法是根据可以最大化您的信息增益的变量拆分节点。
当你到达一个纯叶节点时,信息增益等于0(因为你不能通过分裂一个只包含一个变量的节点获得任何信息-logic
)。
在您的示例中,Entropy(S) = 1.571
是您当前的熵 - 分裂前的熵。我们称它为 HBase
。
然后根据几个可拆分参数计算熵。
为了获得信息增益,您将子节点的熵减去 HBase
-> gain = Hbase - child1NumRows/numOfRows*entropyChild1 - child2NumRows/numOfRows*entropyChild2
def GetEntropy(dataSet):
results = ResultsCounts(dataSet)
h = 0.0 #h => entropy
for i in results.keys():
p = float(results[i]) / NbRows(dataSet)
h = h - p * math.log2(p)
return h
def GetInformationGain(dataSet, currentH, child1, child2):
p = float(NbRows(child1))/NbRows(dataSet)
gain = currentH - p*GetEntropy(child1) - (1 - p)*GetEntropy(child2)
return gain
objective 是为了获得所有信息增益中最好的!
希望对您有所帮助! :)
计算sunny在集合S上所占的比例,即|sunnyInstances| / |小号| = 3/10 = 0.3.
应用仅考虑晴天熵的熵公式。
有 3 个晴天实例分为 2 个 类,其中 2 个晴天与网球相关,1 个与电影院相关。所以 sunny 的熵公式是这样的:
-2/3 log2(2/3) - 1/3 log2(1/3) = 0.918
以此类推
这非常简单,但我正在学习决策树和 ID3 算法。我找到了一个非常有用的网站,我一直在关注有关熵和信息增益的所有信息,直到我到达
我不明白每个单独属性(晴天、多风、下雨)的熵是如何计算的——具体来说,p-sub-i 是如何计算的。它似乎与熵 (S) 的计算方式不同。谁能解释一下这个计算背后的过程?
要将一个节点拆分为两个不同的子节点,一种方法是根据可以最大化您的信息增益的变量拆分节点。
当你到达一个纯叶节点时,信息增益等于0(因为你不能通过分裂一个只包含一个变量的节点获得任何信息-logic
)。
在您的示例中,Entropy(S) = 1.571
是您当前的熵 - 分裂前的熵。我们称它为 HBase
。
然后根据几个可拆分参数计算熵。
为了获得信息增益,您将子节点的熵减去 HBase
-> gain = Hbase - child1NumRows/numOfRows*entropyChild1 - child2NumRows/numOfRows*entropyChild2
def GetEntropy(dataSet):
results = ResultsCounts(dataSet)
h = 0.0 #h => entropy
for i in results.keys():
p = float(results[i]) / NbRows(dataSet)
h = h - p * math.log2(p)
return h
def GetInformationGain(dataSet, currentH, child1, child2):
p = float(NbRows(child1))/NbRows(dataSet)
gain = currentH - p*GetEntropy(child1) - (1 - p)*GetEntropy(child2)
return gain
objective 是为了获得所有信息增益中最好的!
希望对您有所帮助! :)
计算sunny在集合S上所占的比例,即|sunnyInstances| / |小号| = 3/10 = 0.3.
应用仅考虑晴天熵的熵公式。 有 3 个晴天实例分为 2 个 类,其中 2 个晴天与网球相关,1 个与电影院相关。所以 sunny 的熵公式是这样的: -2/3 log2(2/3) - 1/3 log2(1/3) = 0.918
以此类推