决策树常用的有ID3,C4.5和CART算法,在得到决策树之后还要对树进行剪枝。
ID3算法:https://blog.csdn.net/weixin_43216017/article/details/87474045
CART算法:https://blog.csdn.net/weixin_43216017/article/details/87617727
决策树的剪枝:https://blog.csdn.net/weixin_43216017/article/details/87534496
在上一篇介绍ID3算法文章中,我们指出ID3算法采用信息增益作为标准,缺点在于会偏向分类更多的自变量,并且不能处理连续值。
在本文中,我们将介绍C4.5算法,采用信息增益比代替信息增益,从而减小某一自变量分类个数的影响。
我们假设使用的数据集为D DD,待计算的自变量为A AA,g ( D , A ) g(D,A)g(D,A)则信息增益比为:
g r ( D , A ) = g ( D , A ) H A ( D ) g_r(D,A) = \dfrac{g(D,A)}{H_A(D)}gr(D,A)=HA(D)g(D,A)
其中,H A ( D ) = − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ l o g 2 ∣ D i ∣ ∣ D ∣ H_A(D) = -\sum_{i=1}^{n}\dfrac{|D_i|}{|D|}log_2\dfrac{|D_i|}{|D|}HA(D)=−i=1∑n∣D∣∣Di∣log2∣D∣∣Di∣
计算实例:
经计算,(信息增益的详细计算过程在上一篇ID3中)
G a i n ( A 1 ) = 0.083 Gain(A1)=0.083Gain(A1)=0.083
G a i n ( A 2 ) = 0.324 Gain(A2)=0.324Gain(A2)=0.324
G a i n ( A 3 ) = 0.420 Gain(A3)=0.420Gain(A3)=0.420
G a i n ( A 4 ) = 0.363 Gain(A4)=0.363Gain(A4)=0.363
下面计算自变量A1的信息增益比,H 1 ( D ) = − 1 3 l o g 2 1 3 − − 1 3 l o g 2 1 3 − − 1 3 l o g 2 1 3 = 1.5850 H_1(D) = -\dfrac{1}{3}log_2\dfrac{1}{3}--\dfrac{1}{3}log_2\dfrac{1}{3}--\dfrac{1}{3}log_2\dfrac{1}{3} = 1.5850H1(D)=−31log231−−31log231−−31log231=1.5850g r ( D , A 1 ) = 0.083 1.5850 = 0.0524 g_r(D,A1) = \dfrac{0.083}{1.5850} = 0.0524gr(D,A1)=1.58500.083=0.0524
同理可得
g r ( D , A 2 ) = 0.324 0.9183 = 0.3528 g_r(D,A2) = \dfrac{0.324}{0.9183} = 0.3528gr(D,A2)=0.91830.324=0.3528
g r ( D , A 3 ) = 0.420 0.9710 = 0.4325 g_r(D,A3) = \dfrac{0.420}{0.9710} = 0.4325gr(D,A3)=0.97100.420=0.4325
g r ( D , A 3 ) = 0.363 1.5656 = 0.2319 g_r(D,A3) = \dfrac{0.363}{1.5656} = 0.2319gr(D,A3)=1.56560.363=0.2319
一般而言,我们还是要选择一个信息增益比最大的变量。但是,采用信息增益比也有缺点,即它会偏向于分类较少的变量。
我们总结一下:
ID3算法使用的是信息增益,它偏向于分类较多的变量;
C4.5算法使用的是信息增益比,它偏向于分类较少的变量。
为了克服这些问题,我们采取如下方式:首先计算信息增益和信息增益比,然后选取信息增益在平均值以上的那些变量,最后在这些变量中选择信息增益比最大的变量。
例如:在上面的实例中,我们发现变量A2,A3,A4的信息增益在平均值以上。然后,我们就在A2,A3,A4三个变量中选择信息增益比最大的变量。