决策树是由一个个“决策”所组成的树,放“决策依据”的是非叶节点。放“决策结果”的是叶子节点
ID3算法
熵:熵描述数据的不确定度,是随机变量不确定度的度量。
熵越大,信息不确定度越大,数据越“混乱”,越不符合决策树分类的需求
D是样品集合,Pk是第k类样品所占的比例
例如:太阳从升起,必然事件,P=1,则1*log2(1)=0;必然事件熵为0;
抛一枚硬币的结果,P1(正面朝上)=P2=1/2;
则Ent(D)=-1/2(log2(1/2)+log2(1/2))=1;
随机变量越不确定,熵越大。
信息增益:衡量熵的变化,即在选定特征A后,数据不确定度的下降。
信息增益越大,意味着这个特征的分类的能力越强,则优先选择这个
特征。
当我们使用某一特征A对数据分类后,其不确定度会减小(因为数据数据有所划分)。此时的熵也会减小,那么分类前后熵减小的差值就是信息增益。
Dv是属性a中取值为Av的集合。
我们一一计算所有属性的信息增益,选择信息增益最大的那个变量作为此分类节点
例:
假定选择属性“色泽”进行分类
好瓜8/17,坏瓜9/17
总体信息熵为:-(8/17log2(8/17)+9/17log2(9/17))=0.998
色泽A的信息熵:
1. Ent(D|A1=青绿)=
-(3/6log2(3/6)+3/6log2(3/6))=1.000
(3/6是指在6个青绿瓜中有3个好瓜,三个坏瓜)
2.Ent(D|A1=乌黑)=
-(4/6log2(4/6)+2/6log2(2/6))=0.918
3.Ent(D|A1=乌黑)=
-(1/5log2(1/5)+4/5log2(4/5))=0.722
则信息增益Gain(D,色泽)=0.998-(6/171.000+6/170.918+5/17*0.722)=0.109
同理求出根蒂,纹理,敲声等的信息增益,取其最大值进行分类
ID3算法缺陷
(1)不支持连续特征
(2)采用信息增益大的特征优先建立决策树的节点。在
相同条件下,取值比较多的特征比取值少的特征信息增
益大。
(3)不支持缺失值处理
(4)没有应对过拟合的策略
C4.5算法进行了改进
ID3算法采用信息增益作为标准,缺点在于会偏向分类更多的自变量,并且不能处理连续值。
C4.5算法,采用信息增益比代替信息增益,从而减小某一自变量分类个数的影响。
1.可将连续的特征离散化
对于连续的{a1,a2…an}
Ta={(Ai+Ai+1)/2}
i属于{1, , , ,n-1}
2.信息增益比代替信息增益(在少数属性值缺失的情况下进行样本划分)
我们假设使用的数据集为D,待计算的自变量为A,g(D,A)
则信息增益比为:
其中H为属性分裂信息度量(属性熵)
g(D,A)为信息增益
H
(
色泽
)
=
−
(
6
17
log
2
6
17
+
6
17
log
2
6
17
+
5
17
log
2
5
17
)
H\left( \text{色泽} \right) =-\left( \frac{6}{17}\log _2\frac{6}{17}+\frac{6}{17}\log _2\frac{6}{17}+\frac{5}{17}\log _2\frac{5}{17} \right)
H(色泽)=−(176log2176+176log2176+175log2175)
则信息增益比:
g
r
(
D
,
色泽
)
=
G
a
i
n
(
D
,
色泽
)
H
(
色泽
)
g_r\left( D,\text{色泽} \right) =\frac{Gain\left( D,\text{色泽} \right)}{H\left( \text{色泽} \right)}
gr(D,色泽)=H(色泽)Gain(D,色泽)
同理可得根蒂,敲声等的信息增益比
一般而言,我们还是要选择一个信息增益比最大的变量。但是,采用信息增益比也有缺点,即它会偏向于分类较少的变量。
我们总结一下:
ID3算法使用的是信息增益,它偏向于分类较多的变量;
C4.5算法使用的是信息增益比,它偏向于分类较少的变量。
为了克服这些问题,我们采取如下方式:首先计算信息增益和信息增益比,然后选取信息增益在平均值以上的那些变量,最后在这些变量中选择信息增益比最大的变量。
C4.5算法缺陷
(1)剪枝的算法有非常多,C4.5的剪枝方法有优化的空间
(2) C4. 5生成的是多叉树,很多时候,在计算机中二叉树模型会比
多叉树运算效率高。如果采用二叉树,可以提高效率
(3) C4. 5只能用于分类
(4)C4.5使用了熵模型,里面有大量的耗时的对数运算,如果是连续
值还有大量的排序运算
ID3/C4.5/CART算法的区别在于选择特征作为判断节点时的数据纯度函数(标准)不同。ID3算法使用的是信息增益,C4.5算法使用的是信息增益比,CART算法使用的是基尼系数(GINI)。
CART算法
CART算法
CART假设决策树是二叉树,并且可以分类也可以回归,而且用基尼系数代替了熵模型进行特征选择,也提供了优化的剪枝策咯。