概述
决策树(Decision tree)一种常见的回归和分类的方法,决策树易于理解,其符合人类的思维方式,便于解释等特点。决策树的学习过程通常分为3个步骤:特征选择、决策树的生成、剪枝。
决策树可以看出一个if-then规则的集合,下面给出一副图进行对决策树宏观的认识,这里我们的任务是要将红色的点和绿色的点进行分类:
在平面上选择最好的划分点,即如何切分数据点效果最好,如下图所示的,黑线左边和右边被分成两类,左边的为绿色,右边为红色,显然这样会有很大的误差,因此需要更多的划分点。
经过一系列划分后,得到如下的图形,红色和绿色被黑框进行分割。
最后得到其划分的流程图如下所示:
上面的一个很自然的问题是,如何找到最优的切分点,即我如何切这一刀使得其划分的结果尽可能好,注意这里的用词,因为决策树中选择最优决策树是NP完全问题,所以在现实中采用启发式的方法,也就是我们选择的是贪婪的算法,没次划分的都是当前结果中最优的划分。
如何选择划分点也就是决策树的特征选择的步骤。
特征选择
不纯性度量
特征选择,即从当前的特征中选择一个能将样本划分最好的特征的算法,通常选择最佳划分的度量是根据划分后子女节点的不纯性的纯度。不纯的程度越低,类的分别越倾斜。不纯性的度量包括:
上述分别为基尼指数、信息熵和分类误差,其中
pk
为第k类的概率。
在二分类问题上三个不纯度度量之间的比较,可以看到它们的度量是一直的在p=0.5
时不纯度 最高,此时需要较多的信息,而p=0
,p=1
时不纯度为0,因为我不需要知道任何信息即可将它们分开。即不存度越高,所需要的信息就越多。
在决策树的构造中,最常用的三种算法为:ID3,C4,5和CART算法。
信息增益
设训练数据为D
,则特征A
对训练集D
的信息增益
g(D,A)
,定义为集合D
的信息熵与特征A
给定的条件下的经验熵之差,即:
设训练集
D
共有k个类别
信息增益比
从上述可以看到如果一个特征具有很多个属性的话,因此在选择特征是,会偏向于选择属性较多的特征,因为属性较多,会分成更多的子集,解决这一问题可以用信息增益比,这是特征选择的另一准则,信息增益比为:
其中 HA(D)=−∑ni=1pi∗log(pi) ,其中 pi 为第i个子集的概率。
ID3,C4.5,CART的比较
下面给出三种决策树构建算法的简单宏观的比较:
下面分别对其进行介绍。
ID3算法
ID3算法,即选择能使得信息增益最大的特征作为当前的划分要本的特征。然后递归的构建决策树。具体方法为:
从根节点开始,对节点计算所有可能特征的信息增益,选择信息增益最大的节点作为划分的特征,有该特征的不同取值建立子节点,在对子节点递归的挑用以上方法。直到左右的特征的信息增益均很小或者没有特征可以选择了,最后得到一颗决策树。
有关构造决策树的具体代码可以参考:基于ID3算法生成决策树
C4.5算法
与ID3算法非常的类似,只不过用信息增益比来代替ID3中的信息增益而已。
CART算法
分类与回归树(classification and regression tree,CART)是一种广泛的决策树学习方法,其中它既可以做分类也可以做回归,同时CART与ID3和C4.5所不同的一点是他是个二叉树,即每次划分都是是与不是。
CART的生成就是递归的构建二叉决策树的过程,其中对回归树用平方误差最小化的准则,儿对分类树用基尼指数(Gini index)最小化的准则。
回归树的生成
一个回归树对应于将输入空间D划分为M个单元 R1,R2,...Rm ,并且在每个单元上的输出值为在此单元上所有的数据的平均值,即如果测试的要本落在了 Ri 这个空间中,则其输出的值为:
主要的问题是我们如何进行空间的划分,下面给出以最新二乘回归树的生成算法:
来源:统计学习方法
分类树的生成
假设有K
个类,样本点属于k的概率为
pk
,则概率分布的基尼指数为:
在CART的算法中,生成的是二叉树,因此k=2,所以基尼指数变为:
具体生成的算法与ID3和C4.5类似,不再赘述。
决策树的剪枝
在决策树问题中,处理过拟合的方法为剪枝,其中剪枝分为先剪枝和后剪枝。
先剪枝
在这种方法中,在完全拟合整个训练集之前就停止决策树的生长。因此要采取一些提前结束的条件,比如说:当观察到不纯性度量的增益低于某个确定的阈值是就停止扩展叶子节点。这种方法有点在于避免产生过分拟合训练数据的过于复杂的子树,然而,很难为提前终止选取正取的阈值。阈值太高容易欠拟合,太低过拟合。
后剪枝
在此方法中,初始的决策树按最大规模增长,然后对其进行剪枝,按照自第向上的方法进行对决策树的修剪。
决策树越复杂一般来说对训练数据的拟合越好,其有更多的叶子节点,为了避免其过于复杂的模型,一般的做法都是给其一个惩罚。因此决策树的剪枝往往通过极小化损失函数(loss function)来实现。
Loss function :
其中|T|为叶子节点的个数,C(T)表示模型对训练样本的预测误差。因此当 α 确定后,如果在一颗子树的损失反而小于其分裂后的损失,则让父节点充当该子树的叶子节点,即当:
则将父节点作为叶子节点,关于更多可以参考相应的资料。
决策树的优缺点
Good properties:
1.Inexpensive to construct
2.Variable selection
3.Interaction detection
4.Easy to interpret for small-sized trees
5.Missing data
6.Mixed variable types
7.Robustness; invariant to monotone transformations of input variables
Weak properties:
1. Instability
2. Difculty in modeling additive structures
参考资料:
1.Ji Zhu, Michigan Statistics
2.统计学习方法
3.机器学习
4.数据挖掘导论
5.七月在线