ID3算法使用“信息增益”度量。
C4.5使用“增益比率”度量,即信息增益除以SplitInfo
,而SplitInfo
为高分辨率,其中记录在不同结果之间平均分配,否则为低。
我的问题是:
这有助于解决信息增益偏向于具有多种结果的分裂的问题?我看不出原因。 SplitInfo
甚至没有考虑结果的数量,只考虑分裂中记录的分布。
很可能是结果数量较少(例如2),并且记录在这两种结果之间平均分配。在这种情况下,SplitInfo
很高,增益比率很低,C4.5选择的结果很少,而且C4选择的结果很少。
另一方面,可能是结果数量较少,但分布远非均匀。在这种情况下,SplitInfo
较低,增益比率较高,并且更有可能选择具有多种结果的分割。
我错过了什么?
答案 0 :(得分:7)
SplitInfo甚至没有考虑结果的数量,只考虑分割中记录的分布。
但确实考虑了结果的数量。 (即使它也依赖于分布,正如您所指出的那样)。您的比较是在具有相同(“低”)数量的结果的两种情况之间进行的,因此它无法说明SplitInfo
如何随着结果数量的变化而变化。
考虑以下3种情况,为了简化比较,均为均匀分布:
均匀分布的10种可能结果
SplitInfo = -10*(1/10*log2(1/10)) = 3.32
均匀分布的100种可能结果
SplitInfo = -100*(1/100*log2(1/100)) = 6.64
均匀分布的1000种可能结果
SplitInfo = -1000*(1/1000*log2(1/1000)) = 9.97
因此,如果您必须在3种可能的拆分方案中进行选择,仅使用ID3中的Information Gain
,则会选择后者。但是,在SplitInfo
中使用GainRatio
时,应该很清楚,当选项数量上升时,SplitInfo
也会上升,而{ {1}}将向下。
所有这些都是通过均匀分布的假设来解释的。然而,即使分布不均匀,上述情况仍然适用。随着可能结果的数量越来越多,GainRatio
会越来越高。是的,如果我们保持可能的结果数量不变并改变结果分布,那么SplitInfo
会有一些差异......但SplitInfo
也是如此。