基本流程
决策树基于树结构进行预测
决策过程中提出的每个判定问题都是对某个属性的“测试”
决策过程的最终结论对应了我们所希望的判定结果
每个测试的结果或是导出最终结论,或者导出进一步的判定问题,其考虑范围是在上次决策结果的限定范围之内
从根结点到每个叶结点的路径对应了一个判定测试序列
决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树
可以看出,决策树学习算法包含特征选择、决策树的生成与决策树的剪枝过程。由于决策树表示一个条件概率分布,所以深浅不同的决策树对应着不同复杂程度的概率模型。决策树的生成对应于模型的局部选择,决策树的剪枝对应着模型的全局选择。决策树的生成只考虑局部最优,相对的,决策树的剪枝则考虑全局最优。
决策树学习常用的算法有ID3、C4.5与CART
划分选择
决策树学习的关键在于如何选择最优划分属性。一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高
经典的属性划分方法:
信息增益
增益率
基尼指数
熵是表示随机变量不确定性的度量。熵越大不确定性越大
信息增益表示得知特征X的信息而是类Y的信息不确定性减少的程度
存在的问题:
若把“编号”也作为一个候选划分属性,则其信息增益一般远大于其他属性。显然,这样的决策树不具有泛化能力,无法对新样本进行有效预测
信息增益可取对取值数目较多的属性有所偏好
剪枝处理
为什么剪枝
“剪枝”是决策树学习算法对付“过拟合”的主要手段
可通过“剪枝”来一定程度避免因决策分支过多,以致于把训练集自身的一些特点当做所有数据都具有的一般性质而导致的过拟合
简而言之,提高泛化能力。所谓泛化能力,就是适用于新样本的能力。
剪枝的基本策略
预剪枝
决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点记为叶结点,其类别标记为训练样例数最多的类别
预剪枝划分后最终得到仅有一层划分的决策树,称为决策树桩
预剪枝的优缺点
优点
降低过拟合风险
显著减少训练时间和测试时间开销
缺点
欠拟合风险:有些分支的当前划分虽然不能提升泛化性能,但在其基础上进行的后续划分却有可能导致性能显著提高。预剪枝基于“贪心”本质禁止这些分支展开,带来了欠拟合风险
后剪枝
先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点
后剪枝的优缺点
优点
后剪枝比预剪枝保留了更多的分支,欠拟合风险小,泛化性能往往优于预剪枝决策树
缺点
训练时间开销大:后剪枝过程是在生成完全决策树之后进行的,需要自底向上对所有非叶结点逐一考察
判断决策树泛化性能是否提升的方法
留出法:预留一部分数据用作“验证集”以进行性能评估
连续与缺失值
连续值处理
缺失值处理
多变量决策树
成熟的决策树软件包
ID3,C4.5,C5.0http://www.rulequest.com/Personal/
J48http://www.cs.waikato.ac.nz/ml/weka/
ID3算法
ID3算法的核心是在决策树各个结点上应用信息增益准则选择特征,递归地构建决策树。具体方法是:从根结点(root node)开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子结点再对于结点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止。最后得到一棵决策树。ID3相当于用极大似然法进行概率模型的选择
C4.5算法
在ID3算法上的改进,由于ID3算法会偏向于样本数目多的属性,因此ID3引进了一个因子来抵消它,但会引来偏好数目少的样本。因此,在应用中,先从候选属性中找出信息增益高于平均水平的属性,也就是,用信息增益比来选择特征。