赞
踩
目录
集成学习原名为 ,它是根据训练数据构造一组基分类器(base classifier),通过聚合每个基分类器的输出来进行分类。
基分类器,就是一个小的分类器,单个基分类器的性能取决于它选择的分类算法和训练集。
对于单个性能比较弱的基分类器,我们称为弱分类器。
对于单个性能比较强的基分类器,我们称为强分类器。
多个基分类器集成的思想源于下列直觉:
- 考虑到几个基分类器的分类意见,而不是仅仅依靠一个基分类器的意见 。
- 许多弱分类器的组合至少可以和一个强分类器一样好。
- 一些强分类器的组合(通常)至少和基分类器中最好的一个一样好。
多个分类器集成后的性能一定更好吗?我们带着这个疑问来看下面的例子:
分别代表了3个基分类器, 表示的是三个分类器的结合的最终结果:
由结果可以看出,多个基分类器的集合不一定犹豫单个基分类器的性能,那么:
什么时候选择集成呢?
- 基础分类器不会犯同样的错误。
- 每个基础分类器都是相当准确的。
实例操作:通过抽样产生多个训练集,并在每个数据集上训练一个基础分类器。
特征操作:通过不同的特征子集生成多个训练集,并在每个数据集上训练一个基础分类器。
算法操作:半随机地调整给定算法中的内部参数,在给定的数据集上生成多个基础分类器。
在多个基分类器上进行分类的最简单手段是投票:
对于离散类,在测试集上运行多个基分类器,并选择由最多基分类器预测的类(少数服从多数)。例如一个二分类的数据集,,构造了5个基分类器,对于某个样本有三个基分类器的输出结果是1, 两个是0那么这个时候,总和来看结果就应该是1。
对于连续数值类,对我们基分类器预测的数字进行平均,将平均数作为最终的预测结果。
从模型角度看:
如果一个模型有更小的和 就代表这个模型的泛化性能很好。
Bagging = bootstrap aggregating(自举汇聚法)
装袋法思想源于数据越多,性能越好的直觉判断。
具体方法:
通过随机抽样与替换相结合的方式构建新的数据集 。
将原始数据集进行有放回的随机采样次,得到了个数据集,针对这些数据集一共产生个不同的基分类器。对于这个分类器,让他们采用投票法来决定最终的分类结果。
例子:
袋装法存在的问题:
因为袋装法是有放回的随机采样次,那就有可能有些样本可能永远不会被随机到。因为个样本,每个样本每次被取到的概率为,那么一共取次没取到的概率为这个值在很大的时候的极限值。
装袋法的特点:
随机森林法的基分类器是随机树:一棵决策树,但每个节点只考虑一些可能的属性。
可以通过下图回忆什么是决策树:
也就是说随机树使用的特征空间不是训练集全部的特征空间
森林就是多个随机树的集合
随机森林的超参数:
树的数量B,可以根据“out-of-bag”误差进行调整。
特征子样本大小:随着它的增加,分类器的强度和相关性都增加 。因为随机森林中的每棵树使用的特征越多,其与森林中其他树的特征重合度就可能越高,导致产生的随机数相似度越大。
可解释性:单个实例预测背后的逻辑可以通过多棵随机树共同决定。
随机森林的特点:
演进法的思想源于调整基础分类器,使其专注于难以分类的实例的直觉判断。
具体方法:
迭代地改变训练实例的分布和权重,以反映分类器在前一次迭代中的表现。
例子:
对于boosting方法,有两个问题需要解决:
Boosting集成方法的特点:
Adaptive Boosting(自适应增强算法):是一种顺序的集成方法(随机森林和 Bagging 都属于并行的集成算法)。
具体方法:
在每个 中,都按照下面的步骤进行:
1
计算错误率
是一个函数,当函数的条件满足的时候函数值为1;即,当弱分类器对样本进行分类的时候如果分错了就会累积。
2
使用来计算每个基分类器的重要程度(给这个基分类器分配权重)
从这个公式也能看出来,当 判断错的样本量越多,得到的就越大,相应的就越小(越接近 )
3
根据来更新每一个样本的权重参数,为了第个做准备:
样本的权重由变成这个过程中发生的事情是:如果这个样本在第个中被判断正确了,他的权重就会在原本的基础上乘以;根据上面的知识因此所以根据公式我们可以知道,那些被分类器预测错误的样本会有一个大的权重;而预测正确的样本则会有更小的权重。
是一个项,为了保证所有的权重相加之和为。
4
最终将所有的按照权重进行集成
5
持续完成从的迭代过程,但是当的时候需要重新初始化样本的权重最终采用的集成模型进行分类的公式:
这个公式的意思大概是:例如我们现在已经得到了3个基分类器,他们的权重分别是所以整个集成分类器可以表示为:
如果类别标签一共只有那就最终的对于的值大还是对于的值大了。
只要每一个基分类器都比随机预测的效果好,那么最终的集成模型就会收敛到一个强很多的模型。
装袋法和演进法的对比:
Bagging | Boosting | |
样本选择 | 训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。 | 每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。 |
样例权重 | 均匀取样,每个样例的权重相等。 | 根据错误率不断调整样例的权值,错误率越大则权重越大。 |
预测函数 | 所有预测函数的权重相等。 | 每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。 |
计序 | 各个预测函数可以并行生成。 | 各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。 |
装袋法/随机森林 以及演进法对比
Bagging/Random Forest | Boosting |
平行取样 | 迭代抽样 |
简单投票 | 加权投票 |
同质分类器 | 同质分类器 |
最小化变异度 | 最小化实例偏置 |
不容易过度拟合 | 容易过度拟合 |
堆叠法的思想源于在不同偏置的算法范围内平滑误差的直觉。
方法:采用多种算法,这些算法拥有不同的偏置
在基分类器() 的输出上训练一个元分类器()也叫
- 了解哪些分类器是可靠的,并组合基分类器的输出
- 使用交叉验证来减少偏置
:基分类器
- 给定一个数据集
- 可以是等
:集成分类器
- 在分类器的基础上构建新的
- 每个分类器的预测输出都会加入作为新的;如果有个分离器最终就会加入个
- 删除或者保持原本的数据
- 考虑其他可用的数据(概率分数,权重)
- 训练来做最终的预测
可视化这个stacking过程:
stacking方法的特点:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。