一、基础
简述决策树原理
决策树是一种有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规则,并用树状图的结构来呈现这些规则,以解决分类和回归问题。
熵
当目标的特征过多时,可以构建多个决策树,那么哪那一棵树是最佳的选择?特征的顺序是怎样安排的?
思路:按照某个特征对数据进行划分,这个特征能够最大程度地将原本混乱的结果尽可能划分为有序的几大类,那就以这个特征为跟结点,接着不断重复这一过程直到决策树构建完成。
那么混乱和有序是怎么样进行衡量的?引入信息论中"熵"。
信息熵:表示随机变量不确定性的度量。说简单点就是物体内部的混乱程度。
从熵的角度,决策树2的分类效果优于决策树1。
所以构建决策树的实质是对特征进行层次选择,而衡量特征选择的合理性指标,则是熵。
设 𝑋 是取值在有限范围内的一个离散随机变量,其概率密度为
信息熵的计算公式
举例
当某个集合含有多个类别时,此时 𝑘 较大, 𝑝𝑖 的数量过多;
且整体的 𝑝𝑖 都会因 𝑘 的过大而普遍较小,从而使得 𝐻(X) 的值过大。
当k过大时:
这正好符合“熵值越大,事物越混乱”的定义。
条件熵:表示在已知随机变量 𝑋 的条件下随机变量 𝑌 的不确定性。
条件熵的计算公式
二、三种经典算法
ID3
1.信息增益
ID3基于信息增益进行特征选择。
信息增益:表示选择特征X使得数据集 𝐷 的不确定性减少程度。
数据集D不确定性程度;
在选择特征X的条件下,数据集D的不确定程度。
2.例题计算
基于信息增益进行特征选择:
初始熵:
年龄:A 有工作:B 房子:C 信贷:E
在特征选择年龄的条件下,
同理,依次计算有工作、房子、信贷情况。
对比其信息增益,发现是否有自己的房子这一特征,信息增益值最大,所以选择这一特征为根节点。
选择根结点后,数据集D划分为两个子集(有自己的房子)和(无自己的房子)。
由上图数据集知,只有同一类样本点,所以对(红色选中部分)从年龄、工作、信贷这三个特征中进行选择,计算对应的信息增益。
于是生成如下图的决策树。
C4.5
1.信息增益率
ID3算法的缺点:以信息增益作为划分数据集的特征时,其偏向于选择取值较多的特征。
C4.5对ID3算法进行了改进,用信息增益率进行特征选择。
信息增益率:为其信息增益 𝑔(𝐷, 𝑋) 与数据集𝐷在特征𝑋上的熵之比,即
当特征X取值类别较多时,式中的分母也会增大,从而降低了 “偏向取值较多的特征” 这一影响。
2.例题计算
用信息增益率对上面的例题进行特征选择。
经过之前的计算得
其中,还是有自己的房子这一特征信息增益率最高,作为根结点。
同理,再根据房子这一特征的取值类别划分子集:数据集D划分为两个子集(有自己的房子)和(无自己的房子)。
生成的决策树如下图。
CART
1.基尼系数
ID3 和 C4.5 ,基于信息论的熵模型出发而得,涉及了大量对数运算。
基尼系数和熵都是用来衡量数据分布不均匀程度的指标。
CART通过使用基尼系数来代替信息增益率,从而避免复杂的对数运算。
进行特征选择时,选择那个使得划分后基尼指数最小的属性作为最优的划分属性。
基尼系数的计算公式
对于给定的数据集,假设有k类,代表样本点属于第k类的概率。
在特征X的条件下,数据集D的基尼系数为
2.基尼增益
同信息增益一样,如果将数据集 𝐷 的基尼系数减去数据集 𝐷 根据特征 𝑋 进行划分后得到的基尼系数。
采用越好的特征进行划分,得到的基尼增益也越大。
3.基尼增益率
基尼增益也有“其偏向于选择取值较多的特征”的缺点。
于是,用基尼增益率可以改进这一缺点。
4.例题计算
房子的基尼增益率最大,选择其为根结点。
同理对数据集D进行划分:数据集D划分为两个子集(有自己的房子)和(无自己的房子)。
选择基尼增益率最大的工作这一特征。
生成的决策树和之前的算法一致。
三、决策树剪枝
参考资料
李航-统计学习方法
正在学习的新人,如有错误欢迎指正!