决策树
优点:模型具有可读性,分类速度快。
学习时,利用训练数据,根据损失函数最小化的原则建立决策树模型。
预测时,对新的数据,利用决策树模型进行分类。
决策树学习通常包括3个步骤:特征选择、决策树的生成和决策树的修剪。
1 决策树模型与学习
决策树模型
**决策树(decision tree)**分类决策树是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed edge)组成。结点有两种类型:内部结点(internal node)和叶结点(leaf node)。内部结电表示一个特征或属性,叶结点表示一个类。
用决策树分类的过程:从根结点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子结点;这时,每一个子结点对应着该特征的一个取值。如此递归地对实例进行测试并分配,直至达到叶结点。最后将实例分到叶结点的类中。
决策树与if-then规则
可将决策树看成一个if-then规则的集合。
由决策树的根结点到叶结点的每一条路径构建一条规则;路径上内部结点的特征对应着规则的条件,而叶结点的类对应着规则的结论。决策树的路径或其对应的if-then规则集合具有一个重要的性质:互斥并且完备。即,每一个实例都被一条路径或一条规则所覆盖,而且只被一条路径或一条规则所覆盖。这里的覆盖是指实例的特征与路径上的特征一致或实例满足规则的条件。
决策树与条件概率分布
决策树可表示给定特征条件下类的条件概率分布。
将特征空间划分为互不相交的cell(或region),并在每个cell定义一个类的概率分布,就构成了一个条件概率分布。决策树的一条路径对应于划分中的一个cell。决策树所表示的条件概率分布由各个cell给定条件下类的条件概率分布组成。
决策树学习
决策树学习本质上是从训练数据集中归纳出一组分类规则。
决策树学习的策略是以损失函数为目标函数的最小化。
决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类的过程。这一过程对应着对特征空间的划分,也对应着决策树的构建。
决策树的构建过程:开始,构建根结点,将所有训练数据都放在根结点。选择一个最优特征,按照这一特征将训练数据集分割成子集,使得各个子集有一个在当前条件下最好的分类。如果这些子集已经能够被基本正确分类,那么构建叶结点,并将这些子集划分到对应的叶结点中去;如果还有子集不能被基本正确分类,那么就对这些子集选择新的最优特征,继续对其进行分割,构建相应的结点。如此递归进行下去,直至所有训练数据子集被基本正确分类,或者没有合适的特诊为止。最后每个子集都被分到叶结点上,即都有了明确的类,这就生成了一棵决策树。
以上方法生成的决策树可能对训练数据有很好的分类能力,但对未知的测试数据未必能够很好地分类,可能发生过拟合现象。此时需要对已生成的树自上而下进行剪枝,将树变得简单,从而使其具有更好的泛化能力。具体地,就是去掉过于细分的叶结点,使其回退到父结点,甚至更高的结点,最后将父结点或更高的结点改为新的叶结点。
如果特征数量过多,也可以在决策树开始学习的时候,对特征进行分类,只留下对训练数据有足够分类能力的特征。
2 特征选择
特征选择在于选取对训练数据具有分类能力的特征,以提高决策树的学习效率。如果利用一个特征进行分类的结果与随机分类的结果没有很大差别,则称这个特诊是没有分类能力的,经验上扔掉这样的特征对决策树学习的精度影响不大。通常特征选择的准则是信息增益或信息增益比。
信息增益
熵(entropy)时表示随机变量不确定性的度量。
熵越大,随机变量的不确定性越大。
信息增益(information gain)表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。
定义(信息增益)特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A在给定条件下D的经验条件熵H(D|A)之差,即,g(D,A) = H(D) - H(D|A)。
这个熵与条件熵的差称为互信息。决策树学习中的信息增益等价于训练数据集中类与特征的互信息。
决策树学习应用信息增益准则选择特征。信息增益大的特征具有更强的分类能力。
根据信息增益准则的特征选择方法是:对训练数据集(或子集)D,计算其每个特征的信息增益,并比较他们的大小,选择信息增益最大的特征。
定义(信息增益比)
3 决策树的生成
ID3 算法
核心是在决策树各个结点上应用信息增益准则选择特征,递归地构建决策树。具体方法:从根结点(root node)开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特诊作为结点的特征,由该特征的不同取值建立子结点;再对子结点递归地调用以上方法,侯建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止。最后得到一个决策树。ID3相当于用极大似然法进行概率模型的选择。
缺点:ID3算法只有树的生成,所以该算法生成的树容易产生过拟合。
C4.5的生成算法
与ID3相似,对其进行了改进。C4,。5在生成的过程中,用信息增益比来选择特征。
4 决策树的剪枝
为什么剪枝:决策树生成算法递归地产生决策树,直到不能继续下去为止。这样产生的树往往对训练数据的分类很准确,但对未知的测试数据的分类却没有那么准确,即出现过拟合现象。过拟合的原因在于学习时过多地考虑如何提高对训练数据的正确分类,从而构建出过于复杂的决策树。解决这个问题的办法是考虑决策树的复杂度,对已生成的决策树进行简化。
什么是剪枝:在决策树中将已生成的树进行简化的过程称为剪枝(pruning)。具体地,剪枝从已生成的树上裁掉一些子树或叶结点,并将其根结点或父结点作为新的叶结点,从而简化分类树模型。
一般做法:通过极小化决策树整体的损失函数或代价函数来实现。
剪枝,就是当α确定时,选择损失函数最小的模型,即损失
函数最小的子树。当α值确定时,子树越大,往往与训练数据的拟合越好,但是模型的复杂度就越高;相反,子树越小,模型的复杂度就越低,但是往往与训练数据的拟合不好。损失函数正好表示了对两者的平衡。
决策树生成只考虑了通过提高信息增益对训练数据进行更好的拟合,而决策树剪枝通过优化损失函数还考虑了减小模型复杂度。决策树生成学习局部的模型,而决策树剪枝学习整体的模型。
5 CART算法
分类与回归树(classification and regression tree, CART)
由以下两步组成:
(1)决策树生成:基于训练数据集生成决策树,生成的决策树要尽量大;
(2)决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时用损失函数最小作为剪枝的标准。
CART生成
回归树的生成
分类树的生成
分类树用基尼指数选择最优特征,同时决定该特征的最优二值切分点。
基尼指数Gini(D)表示集合D的不确定性,基尼指数Gini(D,A)表示经A=a分割后集合D的不确定性。基尼指数值越大,样本集合的不确定性也就越大。
CART剪枝
从决策树底端剪去一些子树。
CART剪枝算法由两步组成:首先从生成算法产生的决策树T_0,开始不断,剪枝,直到T_0的根结点,形成一个子树序列{T_0,T_1,…,T_n};
然后通过交叉验证法在独立的验证数据集上对子树序列进行测试,从而选择最优子树。
《统计学习方法》 李航