组合方法
- 1. 组合方法的基本原理
- 2. 构建组合分类器的方法
- 3. 偏倚-方差分解
- 4. 装袋(bagging)
- 5. 提升(boosting)
- 6. 随机森林
1. 组合方法的基本原理
考虑如下的例子
再看下面一张图
对角线表示所有基分类器都是等同的情况,则实线表示所有基分类器独立时的情况
通过这两个例子说明,组合分类器的性能优于单个分类器必须满足两个必要的条件:
- 基分类器之间应该相互独立
- 基分类器应当好于随机猜测分类器
实践上,很难保证基分类器之间完全独立,尽管如此,我们看到在基分类器轻微相关的情况下,组合方法可以提高分类的准确率
2. 构建组合分类器的方法
(1)通过处理训练数据集
这种共方法根据某种抽样分布,通过对原始数据进行再抽样来得到多个训练集。抽样分布决定一个样本分类器,bagging和boosting是两种处理训练数据集的组合方法
(2)通过处理输入特征
通过选择输入特诊的子集来形成每个训练集,子集可以是随机选择,也可以根据领域专家的建议选择。一些研究表明,对那些含有大量冗余特征的数据集,这种方法的性能非常好。随机森林就是一种处理输入特征的组合方法
(3)通过处理类标号
这种方式适用于类数足够多的情况。通过将类标号随机划分成两个不相交的子集和,把训练数据变换为二分类问题。类标号属于子集的训练样本指派到类0,而那些类标号属于子集的训练样本被指派到类1. 然后,使用重新标记过的数据来训练一个基分类器。重复重新标记类和构建模型步骤多次,就得到一组基分类器。当遇到一个检验样本时,使用每个基分类器预测它的类标号。如果检验样本被预测为类0,则属于的类都得到一票,同理被预测为类1. 最后统计选票,将检验样本指派到得票最高的类。错误-纠正输出编码方法就是该方法的一个例子
(4)通过处理学习算法
在同一个训练数据集上多次执行算法可能得到不同的模型。例如,通过改变人工神经网络的拓扑结构或各个神经元之间联系的初始权值;在树生成过程中注入随机性,可以得到决策树的组合分类器
3. 偏倚-方差分解
偏倚-方差分解时分析预测模型的预测误差的形式化方法
我们看下面的这个例子:
我们可以将一个分类器的期望误差分解为公式(5-67)中的三项之和,其中期望误差是分类器误分一个给定样本的概率。一般来说,分类器关于它的决策边界性质所做的假定越强,分类器的偏倚就越大。如下图中,T2具有更大的偏倚,因为它对决策边界的假定更强(反映在树的大小上)
期望误差中的偏倚和方差取决于使用的分类器的类型,如下图所示
4. 装袋(bagging)
装袋是一种根据均匀概率分布从数据集中重复抽样的技术么个自助样本集都和原数据集一样大。由于抽样过程是有放回的,因此一些样本可能在同一个训练集中出现多次,而其他一些却可能被忽略。一般来说自助样本大约包含约0.63的原训练数据
装袋通过降低基分类器方差改善了泛化误差,装袋的性能依赖于基分类器的的稳定性如果基分类器是不稳定的,装袋有助于减低训练数据的随机波动导致的误差;如果基分类器是稳定的,即对训练集中的微小变化是鲁棒的,则组合分尅器的误差主要是由基分类器的偏倚所引起。在这种情况下,装袋可能不会对基分类器的性能有显著改善,装袋甚至可能会降低分类器的性能,因为每个训练集的有效容量比原始数据集大约小0.37
最后由于每一个样本被选中的概率都相同,因此装袋并不侧重与训练数据集中的任何特定实例。因此,用于噪声数据,装袋不会过分拟合
5. 提升(boosting)
提升是一个迭代过程,用来自适应地改变训练样本的分布,使得基分类器聚焦在那些很难分的样本上。提升给每一个训练样本赋一个权值,而且可以在每一轮提升过程结束时自动地调整权值。
训练样本的权值可以用于以下方面:(1)可以用作抽样分布,从原始数据集中提取出自主样本集;(2)基分类器可以使用权值学习有利于高权值样本的模型
开始时,所有样本都赋予相同的权值,从而使得他们被选作训练的可能性都一样。根据训练样本的抽样分布来抽取样本,得到性的样本集。然后, 由该训练集归纳一个分类器,并用它对原数据集中的所有样本进行分类。每一轮提升结束时更新训练样本的权值。增加被错误分类的样本的权值,而减小被正确分类的的样本的权值
AdaBoost
令表示包含个训练样本的集合。在AdaBoost算法中,基分类器的重要性依赖于它的错误率,其定义为:
基分类器的重要性由如下参数给出:
参数也被用来更新训练样本的权值。假定表示在第 j 轮提升迭代中赋给样本的权值。AdaBoost 的权值更新机制由下式给出:
是一个正规因子,用来确保,该公式给出的权值更新公式增加哪些被错误分类样本的权值,并减少哪些已经被正确分类的样本的权值,并减少哪些已经被正确分类的样本的权值
AdaBoost 算法将每一个分类器的预测值根据进行加权,而不是使用多数表决的方案。这种机制有助于AdaBoost 惩罚那些准确率很差的模型,如那些在较早的提升轮产生的模型。另外,如果任何中间轮产生高于 50% 的误差,则权值将被恢复为开始的一致值,并重新进行抽样
对提升的一个重要分析结果显示,组合分类器的训练误差受下式的限制:
是基分类器 i 的错误率。如果基分类器的错误率低于50%,则,其中度量了分类器比随机猜测强多少。则组合分类器的训练误差的边界变为:
如果对所有的 i 都有,则组合分类的训练误差呈指数递减,从而导致算法快速收敛。尽管如此,由于它倾向于那些被错误分类的样本,提升技术很容易过分拟合
6. 随机森林
随机森林是一类专门为决策树分类器设计的组合方法。它组合多棵决策树做出的预测,其中每棵树都是基于随机向量的一个独立集合的值产生的。与 AdaBoost 使用的自适应方法不同,AdaBoost中概率分布是变化的,以关注难分类的样本,而随机森林则采用一个固定的概率分布来产生随机向量
已经从理论上证明,当树的数目足够大时,随机森林的泛化误差的上界收敛于下面的表达式
是树之间的平均相关系数,是度量属性分类器的强度的量。一组分类器的强度是指分类器的平均性能,而性能以分类器的余量用概率算法度量:
其中是根据某随机向量构建的分类器对做出的预测类。余量越大,分类器正确预测给定的样本的可能性就越大
每科决策树都使用一个从某固定概率分布产生的随机向量。可以使用多种方法将随机向量合并到输的增长过程中。
第一种方法是随机选择个输入特征来对决策树的节点进行分裂。这样,分裂节点的决策是根据这选定的特征,而不是考察所有可用的特征来决定。然后,让树完全增长而不进行任何修建,这可能有助于减少结果数的偏倚树构建完毕之后,就可以使用多数表决的方法来组合预测。这种方法称为 Forest-RI,为了增加随机性,可以使用装袋来为 Forest-RI产生自助样本。随机森林的强度和相关性都取决于的大小,如果其足够小,树的相关性趋向于减弱;另一方面,树分类器的强度趋向于随着输入特征数的增加而提高。作为折中,通常取,其中是输入特征数
如果原始特征的数目太小,则很难选择一个独立的随机特征集合来建立决策树一种加大特征空间办法是创建输入特征的线性组合。具体地说,在每一个节点,新特征通过随机选择个输入特征来构建。这些输入特征用区间 [-1, 1] 上的均匀分布产生的系数进行线性组合。在每个结点,产生个这种随机组合的新特征,并且从中选择最好的来分裂结点。这种方法称为 Forest-RC
生成随机树的第三种方法是:在决策树的每一个结点,从个最佳划分中随机选择一个。除非足够大,否则这种方法可能产生比前两种方法相关性更强的树