失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 机器学习基础:模型集成/集成学习

机器学习基础:模型集成/集成学习

时间:2020-08-02 04:17:41

相关推荐

机器学习基础:模型集成/集成学习

目录

1. 什么是集成学习

1.1 分类器集成的结果

1.2构造基分类器的三种方法

1.3多个基分类器如何进行分类

2. 分析预测模型的泛化误差

3. 分类器集成方法

3.1装袋法 Bagging(实例操作)

3.2 随机森林法 Random Forest(特征操作)

3.3 演进法 Boosting(算法操作)

3.3.1演进法实例:AdaBoost

3.3.2装袋法/随机森林和演进法对比

3.4 堆叠法 Stacking

1. 什么是集成学习

集成学习原名为,它是根据训练数据构造一组基分类器(base classifier),通过聚合每个基分类器的输出来进行分类。

基分类器,就是一个小的分类器,单个基分类器的性能取决于它选择的分类算法和训练集。

对于单个性能比较弱的基分类器,我们称为弱分类器

对于单个性能比较强的基分类器,我们称为强分类器

多个基分类器集成的思想源于下列直觉

考虑到几个基分类器的分类意见,而不是仅仅依靠一个基分类器的意见 。许多弱分类器的组合至少可以和一个强分类器一样好。一些强分类器的组合(通常)至少和基分类器中最好的一个一样好。

1.1 分类器集成的结果

多个分类器集成后的性能一定更好吗?我们带着这个疑问来看下面的例子:

分别代表了3个基分类器,表示的是三个分类器的结合的最终结果:

由结果可以看出,多个基分类器的集合不一定犹豫单个基分类器的性能,那么:

什么时候选择集成呢?

基础分类器不会犯同样的错误。每个基础分类器都是相当准确的。

1.2构造基分类器的三种方法

实例操作:通过抽样产生多个训练集,并在每个数据集上训练一个基础分类器。

特征操作:通过不同的特征子集生成多个训练集,并在每个数据集上训练一个基础分类器。

算法操作:半随机地调整给定算法中的内部参数,在给定的数据集上生成多个基础分类器。

1.3多个基分类器如何进行分类

在多个基分类器上进行分类的最简单手段是投票

对于离散类,在测试集上运行多个基分类器,并选择由最多基分类器预测的类(少数服从多数)。例如一个二分类的数据集,,构造了5个基分类器,对于某个样本有三个基分类器的输出结果是1, 两个是0那么这个时候,总和来看结果就应该是1。

对于连续数值类,对我们基分类器预测的数字进行平均,将平均数作为最终的预测结果。

2. 分析预测模型的泛化误差

从模型角度看:

(偏置):衡量一个分类器进行错误预测的趋势。(变异度):衡量一个分类器预测结果的偏离程度。

如果一个模型有更小的和 就代表这个模型的泛化性能很好。

3. 分类器集成方法

3.1装袋法 Bagging(实例操作)

Bagging =bootstrap aggregating(自举汇聚法

装袋法思想源于数据越多,性能越好的直觉判断。

具体方法

通过随机抽样与替换相结合的方式构建新的数据集 。

将原始数据集进行有放回的随机采样次,得到了个数据集,针对这些数据集一共产生个不同的基分类器。对于这个分类器,让他们采用投票法来决定最终的分类结果。

例子:

袋装法存在的问题

因为袋装法是有放回的随机采样次,那就有可能有些样本可能永远不会被随机到。因为个样本,每个样本每次被取到的概率为,那么一共取次没取到的概率为这个值在很大的时候的极限值。

装袋法的特点

始终使用相同的基分类算法。减少预测的(通过接受一些)。对不稳定的分类器(训练集的微小变化会导致预测的巨大变化)有效。可能会使稳定分类器的性能略有下降。基于抽样(构造基分类器的三种方法中的实例操作)和投票的简单方法。多个单独的基分类器可以同步并行进行计算。可以有效的克服数据集中的噪声数据,因为异常值可能会消失()。性能通常比基分类器要好得多,只是偶尔会比基分类器差。

3.2 随机森林法 Random Forest(特征操作

随机森林法的基分类器是随机树:一棵决策树,但每个节点只考虑一些可能的属性。

可以通过下图回忆什么是决策树:

也就是说随机树使用的特征空间不是训练集全部的特征空间

例如,采用一个固定的比例来选择每个决策树的特征空间大小。随机森林中的每棵树的建立都比一个单独的决策树要简单和快速;但是这种方法增加了模型的 。

森林就是多个随机树的集合

每棵树都是用不同的袋装训练数据集建立的。综合分类是通过投票进行的。

随机森林的超参数

树的数量B,可以根据“out-of-bag”误差进行调整。

特征子样本大小:随着它的增加,分类器的强度和相关性都增加。因为随机森林中的每棵树使用的特征越多,其与森林中其他树的特征重合度就可能越高,导致产生的随机数相似度越大。

可解释性:单个实例预测背后的逻辑可以通过多棵随机树共同决定。

随机森林的特点

随机森林非常强大,可以高效地进行构建。可以并行的进行。对过拟合有很强的鲁棒性可解释性被牺牲了一部分,因为每个树的特征都是特征集合中随机选取的一部分。

3.3 演进法 Boosting(算法操作

演进法的思想源于调整基础分类器,使其专注于难以分类的实例的直觉判断。

具体方法

迭代地改变训练实例的分布和权重,以反映分类器在前一次迭代中的表现。

从初始训练集训练出一个基学习器;这时候每个样本的权重都为。每个都会根据上一轮预测结果调整训练集样本的权重。基于调整后的训练集训练一个新的基学习器。重复进行,直到基学习器数量达到开始设置的值。将个基学习器通过加权的投票方法(weighted voting)进行结合。

例子

对于boosting方法,有两个问题需要解决:

每一轮学习应该如何改变数据的概率分布如何将各个基分类器组合起来

Boosting集成方法的特点

他的基分类器是决策树或者 OneR 方法。数学过程复杂,但是计算的开销较小;整个过程建立在迭代的采样过程和加权的投票(voting)上。通过迭代的方式不断的拟合残差信息,最终保证模型的精度。比bagging方法的计算开销要大一些。在实际的应用中,boosting的方法略有过拟合的倾向(但是不严重)。可能是最佳的词分类器(gradient boosting)。

3.3.1演进法实例:AdaBoost

Adaptive Boosting(自适应增强算法):是一种顺序的集成方法(随机森林和 Bagging 都属于并行的集成算法)。

具体方法

有个基分类器: 。训练集表示为。初始化每个样本的权重都为,即:。

在每个中,都按照下面的步骤进行:

1

计算错误率

是一个函数,当函数的条件满足的时候函数值为1;即,当弱分类器对样本进行分类的时候如果分错了就会累积。

2

使用来计算每个基分类器的重要程度(给这个基分类器分配权重)

从这个公式也能看出来,当判断错的样本量越多,得到的就越大,相应的就越小(越接近 )

3

根据来更新每一个样本的权重参数,为了第个做准备:

样本的权重由变成这个过程中发生的事情是:如果这个样本在第个中被判断正确了,他的权重就会在原本的基础上乘以;根据上面的知识因此所以根据公式我们可以知道,那些被分类器预测错误的样本会有一个大的权重;而预测正确的样本则会有更小的权重。

是一个项,为了保证所有的权重相加之和为。

4

最终将所有的按照权重进行集成

5

持续完成从的迭代过程,但是当的时候需要重新初始化样本的权重最终采用的集成模型进行分类的公式:

这个公式的意思大概是:例如我们现在已经得到了3个基分类器,他们的权重分别是所以整个集成分类器可以表示为:

如果类别标签一共只有那就最终的对于的值大还是对于的值大了。

只要每一个基分类器都比随机预测的效果好,那么最终的集成模型就会收敛到一个强很多的模型。

3.3.2装袋法/随机森林和演进法对比

装袋法和演进法的对比

装袋法/随机森林 以及演进法对比

3.4 堆叠法 Stacking

堆叠法的思想源于在不同偏置的算法范围内平滑误差的直觉。

方法:采用多种算法,这些算法拥有不同的偏置

在基分类器() 的输出上训练一个元分类器()也叫

了解哪些分类器是可靠的,并组合基分类器的输出使用交叉验证来减少偏置

:基分类器

给定一个数据集 可以是等

:集成分类器

在分类器的基础上构建新的每个分类器的预测输出都会加入作为新的;如果有个分离器最终就会加入个删除或者保持原本的数据考虑其他可用的数据(概率分数,权重)训练来做最终的预测

可视化这个stacking过程:

stacking方法的特点

结合多种不同的分类器数学表达简单,但是实际操作耗费计算资源通常与基分类器相比,stacking的结果一般好于最好的基分类器

如果觉得《机器学习基础:模型集成/集成学习》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。