一、决策树算法原理
从逻辑角度上,是一堆if-else语句的组合;从几何角度上,是根据某种准则划分特征空间。其最终目的为将样本越分越纯。
二、ID3决策树
将样本类别标记视作随机变量,各个类别在样本集合中的占比视作各个类别取值的概率,则样本集合的信息熵(底数取2)为
此信息熵可理解为集合内样本的纯度。
条件熵是的信息熵关于概率分布的期望,表示已知后的不确定性,公式为
从单个属性来看,假设其可能取值为的集合,表示取值为的样本集合,则已知取值,样本集合的条件熵为
信息增益为已知属性取值后不确定性减少的量,即纯度的提升,公式为
ID3决策树为以信息增益为准则选择划分的决策树。划分标准的公式为
三、C4.5决策树
信息增益可能对取值数目较多的属性有所偏好,为减轻偏好,C4.5决策树用增益率代替信息增益。增益率为
其中
称为属性的固有值。通常越大,越大。但增益率可能对取值数目较少的属性有所偏好,因此C4.5决策树先选信息增益高的,再从中选增益率高的。
四、CART决策树
基尼值为从样本集合中随机抽两个样本,其类别标记不一样的概率。基尼值越小,纯度越高。基尼值公式为
属性的基尼指数为
CART决策树选择基尼指数最小的属性为最优划分属性,即
首先,对每个属性的可能取值将数据集划分为和两部分计算基尼指数。然后选择基尼指数最小的属性为最优划分属性。重复以上过程直至满足条件。
五、剪枝处理
剪枝是用于解决决策树过拟合的方法。常用的剪枝方法有预剪枝和后剪枝。预剪枝是将数据集以某属性划分前后计算验证集精度判断是否划分,若划分后精度下降则不划分。后剪枝是先生成决策树,计算某属性替换为叶子节点前后验证集精度,若替换后精度上升则替换。
六、连续与缺失值、多变量决策树
1.连续值处理
对连续值的处理采用二分法。给定样本集和连续属性,假设在中取值从大到小排序为,基于划分点将划分为(包含取值不大于的样本)和(包含取值大于的样本)。对于相邻属性和,取两者之间的任何数对结果无影响,因此取作划分点候选值。
2.缺失值划分
给定训练集和属性,令为中无缺失值的样本子集。若,则用表示中取的样本子集,表示中第类样本子集。对每个样本赋予权重,定义
则信息增益变为
其中。以此进行划分。
3.多变量决策树
在决策树中对每个属性都进行决策大大提高计算量,而多变量决策树以多个属性为一个整体,使计算量得以降低。
本文公式以及各种决策树参考自周志华《机器学习》和https://www.bilibili.com/video/BV1Mh411e7VU?p=7&vd_source=bf244e193683634d74ec4694f6a67393并结合了自己理解。