决策树(Decision Tree)是一种基本的分类和回归算法。该算法模型呈树形结构,主要由结点和有向边组成。结点又分为两种类型:内部结点和叶子结点。内部结点表示在一个属性或特征上的测试,每一个结点分枝代表一个测试输出,每一个叶子结点代表一个类别。决策树学习是以实例为基础的归纳学习。
熵:熵是表示随机变量不确定性的度量。随机变量的熵值越大则越不稳定。其公式如下:
其中,X为随机变量,n为随机变量X的不同取值个数,p i = P ( X = x i )
条件熵:条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y 的不确定性。其公式如下:
其中,p i = P ( X = x i )
ID3算法
ID3算法内部使用信息增益作为特征选择方法。信息增益表示得知特征X的信息而使得类Y的信息不确定性减少的程度,标记为g(Y,X)。其公式如下:
信息增益大的特征,具有较强的分类能力。
C4.5算法
C4.5算法内部使用信息增益比进行特征选择,是对ID3算法的一种改进。使用信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题,而信息增益比可以对该问题进行矫正。信息增益比gR(Y,X)定义为特征A对类Y的信息增益g (Y,A)与特征A的熵之比。其公式如下:
信息增益比大的特征,具有较强的分类能力。
理论上,ID3算法和C4.5算法只用于解决分类问题,并且只用于处理离散特征(连续型特征一般要先离散化)。ID3算法和C4.5算法建立的树模型是多叉树。
CART算法
CART(Classification And Regression Tree,分类与回归树)是一种应用非常广泛的决策树算法。CART算法是在给定输入变量X条件下输出随机变量Y的条件概率分布的学习方法,该方法假设决策树是二叉树,内部节点特征的取值为“是”和“否”。这样的决策树等价于递归地二分划分每个特征,将特征空间划分为有限个单元,并在这些单元上确定预测的条件概率分布。
CART决策树的生成就是递归地构造二叉树的过程。对于回归树利用平方误差最小化准则进行特征选择,对于分类树则使用基尼指数进行特征选择。基尼指数的定义如下:
在分类问题中,假设有K个类,样本点属于第k个类的概率为pk,则概率分布的基尼指数为:
对于给定的样本集合D,其基尼指数为
其中Ck是D中属于第k类的样本子集,K是类的个数,Gini(D)表示数据集D的不确定性。
如果样本集合D根据特征A是否取某一可能值a将数据集分割成D1和D2 两部分,则在特征A的条件小,集合D的基尼指数定义为:
改值表示经过A=a分割后集合D的不确定性。基尼指数值越大,样本集合的不确定性就越大。CART算法就是选择一个基尼指数最小的最优特征和最优切分点。
决策树剪枝
假设决策树T TT的叶结点个数为|T|,t是树的叶结点,该结点有Nt个样本,其中k类的样本点有Ntk
个,Ht(T)为叶结点t tt上的经验熵,α≥0为参数,则决策树的损失函数可以定义为:
第一项表示模型对训练数据的预测误差,第二项中的|T|表示模型复杂度。其中经验熵为:
当α确定时,子树越大,往往与训练数据的拟合越好,但是模型的复杂度就越高;相反,子树越小,模型的复杂度越低,但是与训练数据的拟合就不够好。