决策树(Decision tree)是基于已知各种情况(特征取值)的基础上,通过构建树型决策结构来进行分析的一种方式,是常用的有监督的分类算法。
决策树是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。
其中第8行伪代码,从A中选择最优划分属性,有以下几种算法。
ID3算法
ID3算法通过选择信息增益最大的特征进行节点分裂。
信息熵
信息熵是度量样本纯度的最常用的指标之一。假定当前样本集合D中第k类样本所占比例为pk(k=1,2,…,|y|),则D的信息熵定义为
Ent(D)=−|y|∑k=1pklog2pk
Ent(D)的值越小,则D的纯度越高
信息增益:
由于不同分支节点所包含的样本数不同,给分支节点赋予一个权重|Dv||D|,即样本数越多的分支节点影响越大,于是可计算出用属性a对样本集D进行划分所获得的“信息增益”
Gain(D,a)=Ent(D)−V∑v=1|Dv||D|Ent(Dv)
一般而言,信息增益越大,则意味着使用属性a来进行划分所获得的纯度提升越大。
在ID3算法中,选择属性即为:a∗=arg max Gain(D,a)
C4.5算法
信息增益有一个问题,它偏向取值较多的特征。原因是,当特征的取值较多时,根据此特征划分更容易得到纯度更高的子集,因此划分之后的熵更低,由于划分前的熵是一定的。因此信息增益更大,因此信息增益比较偏向取值较多的特征。
信息增益率
信息增益率相比信息增益,多了一个衡量本身属性的分散程度的部分作为分母,而著名的决策树算法C4.5就是使用它作为划分属性挑选的原则。
Gainratio(D,a)=Gain(D,a)IV(a)
其中
IV(a)=−V∑v=1|Dv||D|log2|Dv||D|
在C4.5算法中,选择属性即为:a∗=arg max Gainratio(D,a)
CART算法
CART是分类与回归树(classification and regression tree),其与C4.5算法一样,由ID3算法演化而来。
CART假设决策树是一个二叉树,它通过递归地二分每个特征,将特征空间划分为有限个单元,并在这些单元上确定预测的概率分布。
CART在分类和回归任务中都可用。对于回归树,采用的是平方误差最小化准则;对于分类树,采用基尼指数最小化准则。
基尼指数:在分类问题中,假设有K个类别,样本点属于第k类的概率为pk,则概率分布的基尼指数定义为
Gini(p)=K∑k=1pk(1−pk)=1−K∑k=1p2k
直观的来说,Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此,Gini(D)越小,则数据集D纯度越高。
属性a的基尼指数定义为:
Giniindex(D,a)=V∑v=1|Dv||D|Gini(Dv)
因此我们在选取属性时,选择使得划分后基尼指数小的属性作为最优划分属性,即
a∗=arg min Giniindex(D,a)