决策树系列
本文将会总结一下决策树相关的算法,包括ID3、C4.5、CART
决策树
决策树是有监督分类模型,本质是选择一个最大信息增益的特征值进行分割,直到达到结束条件或叶子结点纯度达到阈值
-
怎
样
才
算
一
个
好
的
决
策
树
?
\color{red}怎样才算一个好的决策树?
怎样才算一个好的决策树?
与训练数据矛盾较小的决策树,同时又具有很好的泛化能力 - 决策树学习过程三步走:
特征选择、决策树的生成以及决策树的修剪 - 内部结点代表一个特征或属性,叶节点表示一个类
特征选择的时候,目标为让各个分裂子集尽可能地“纯”。尽可能“纯”就是尽量让一个分裂子集中待分类项属于同一类别
ID3算法
以信息增益为准则来选择最优划分属性
信 息 熵 : \color{red}信息熵: 信息熵:度量样本集合纯度的指标,
条
件
熵
:
\color{red}条件熵:
条件熵:在X条件下,Y的不确定性
经
验
熵
:
\color{red}经验熵:
经验熵:当熵的概率由数据估计(特别是极大似然估计)得到时,所对应的熵就是经验熵
信
息
增
益
的
计
算
:
\color{red}信息增益的计算:
信息增益的计算:
C
k
C_k
Ck是类别k的样本个数,|D|是样本容量,根据特征A划分D为i个子集
D
i
D_i
Di,
D
i
k
D_{ik}
Dik是
D
i
D_i
Di中属于类别k的样本.
简单描述易理解:
- 我们的目标是判定选择哪个特征优先作为结点,信息增益是评判标准,
- 计算整个数据集的经验熵H(D)
- 然后分别计算每个特征对于数据集D的经验条件熵,从公式可见,就是按照权重计算,说明哪个子集数量多,就有优势
- 以A为属性划分前和划分后的信息熵差值,也就是信息增益,越大越好
优点:算法简单,易理解
缺点:ID3偏向于取值较多的属性进行分割,无法处理缺失值,只能处理离散值,容易出现过拟合
C4.5算法
基于信息增益比的准则来划分,选择最有分割属性
Gain(D,a)就是上面计算的信息增益,IV(a)是一种惩罚机制,用于惩罚那些取值较多的特征. IV(a)是由属性A的特征值个数决定的,个数越多,IV值越大,信息增益率越小
C4.5的做法:先从候选划分属性中找出信息增益高于平均水平的属性,在从中选择增益率最高的。
优点: 能够处理缺省值,能对连续值做离散处理,使用信息增益比,能够避免偏向于选择取值较多的特征;在构造树的过程中,会剪枝,减少过拟合
缺点:构造决策树,需要对数据进行多次扫描和排序,效率低
CART树算法
以基尼系数为准则选择最优划分属性,可用于分类和回归,是一颗二叉树,基尼系数也是表示纯度,gini越小,纯度越高,在候选集合中选择使得划分后基尼指数最小的属性作为最优化分属性。
p(Ck|t) 表示节点 t 属于类别 Ck 的概率,节点 t 的基尼系数为 1 减去各类别 Ck 概率平方和。
例子理解:
集合一:6个人踢球
集合二:3个人踢球,3个不踢球
针对集合 1, p(Ck|t)=1,因此 GINI(t)=1-1=0。
针对集合 2,一半踢球一半不踢,所以p(C1|t)=0.5,p(C2|t)=0.5,GINI(t)=1-(0.5*0.5+0.5*0.5)=0.5。
D1为0,D2为0.5,在属性 A 的划分下,节点 D 的基尼系数为计算得到的0.25