机器学习--集成学习

一、基本概念

1.1 定义

在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往
往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。集成学习就是组
合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到
了错误的预测,其他的弱分类器也可以将错误纠正回来。

集成方法是将几种机器学习技术组合成一个预测模型的元算法,以达到减小方差(bagging)、偏差(boosting)
或改进预测(stacking)的效果。

1.2 考验

将多个好坏不等的学习器掺到一起,结果通常是比最坏的好一些,比最好的坏一些,那么如何获取比最好的单一学习器更好的性能就成为了一个挑战。 要获得更好的集成效果,个体学习器应该“好而不同”,即个体学习器要有一定的“准确性”且学习器间具有差异性。

1.3 集成学习分类

序列集成方法(Boosting) 其中参与训练的基础学习器按照顺序生成(例如 AdaBoost)。序列方法的原理
是利用基础学习器之间的依赖关系。通过对之前训练中错误标记的样本赋值较高的权重,可以提高整体的预
测效果。

并行集成方法(Bagging) 其中参与训练的基础学习器并行生成(例如 Random Forest)。并行方法的原理
是利用基础学习器之间的独立性,通过平均可以显著降低错误。

二、 Bagging(bootstrap aggregating,装袋)

2.1 简介

并行集成学习的代表

欲得到泛化能力强的集成,集成中的各个学习器应该尽可能独立。但独立无法实现,但是差异可能实现。

我们可以基于自助采样法( b o o t s t r a p sampling),它是一种有放回的抽样方法,其过程如下:

①、从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集 中,
有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练
集之间是相互独立的)
②、每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方
法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)
③、对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后
的结果。(所有模型的重要性相同)
在这里插入图片描述
由此,总结一下bagging方法:
Bagging通过降低基分类器的方差,改善了泛化误差
其性能依赖于基分类器的稳定性;如果基分类器不稳定,bagging有助于降低训练数据的随机波动导致的误
差;如果稳定,则集成分类器的误差主要由基分类器的偏倚引起
由于每个样本被选中的概率相同,因此bagging并不侧重于训练数据集中的任何特定实例

由于采用自助抽样,我们可以用剩余样本来对泛化性能进行“包外估计”

2.2 代表算法

①、Bagging

bagging = BaggingClassifier(base_estimator,n_estimators,max_samples,max_features ,bootstrap,bootstrap_features)
在这里插入图片描述
②、Random Forest

由决策树作为基学习器的Bagging方法。在随机森林中,集成中的每棵树都是由从训练集中抽取的样本(即
bootstrap 样本)构建的。另外,与使用所有特征不同,这里随机选择特征子集,从而进一步达到对树的随机化目
的。 因此,随机森林产生的偏差略有增加,但是由于对相关性较小的树计算平均值,估计方差减小了,导致模型的
整体效果更好。

随机方式:样本随机 特征随机 参数随机 模型随机(ID3 ,C4.5)

随机森林和bagging区别:

多样性不仅通过样本扰动,还通过属性扰动
随机森林训练效率更高,因为它是随机考察一个属性子集

③、Extra Trees

极限树与随机森林的主要区别:

randomForest应用的是Bagging模型,extraTree使用的所有的样本,只是特征是随机选取的,因为分裂是随
机的,所以在某种程度上比随机森林得到的结果更加好
随机森林是在一个随机子集内得到最佳分叉属性,而ET是完全随机的得到分叉值,从而实现对决策树进行分
叉的。
随机方式:特征随机 参数随机 模型随机(ID3 ,C4.5) 分裂随机

参数说明:

使用这些方法时要调整的参数主要是 n_estimators 和 max_features 。 前者(n_estimators)是森林里树的数量,通常数量越大,效果越好,但是计算时间也会随之增加。 此外要注意,当树的数量超过一个临界值之后,算法的效果并不会很显著地变好。 后者(max_features)是分割节点时考虑的特征的随机子集的大小。 这个值越低,方差减小得越多,但是偏差的增大也越多。
根据经验,回归问题中使用 max_features = None (总是考虑所有的特征),分类问题使用 max_features = “sqrt” (随机考虑 sqrt(n_features) 特征,其中 n_features 是特征的个数)是比较好的默认值。 max_depth = None 和 min_samples_split = 2 结合通常会有不错的效果(即生成完全的树)。 请记住,这些(默认)值通常不是最佳的,同时还可能消耗大量的内存,最佳参数值应由交叉验证获得。
另外,请注意,在随机森林中,默认使用自助采样法( bootstrap = True ), 然而 extra-trees 的默认策略是使用整个数据集( bootstrap = False )。 当使用自助采样法方法抽样时,泛化精度是可以通过剩余的或者袋外的样本来估算的,设置 oob_score = True 即可实现。

三、Boosting

3.1 概念

其主要思想是将弱分类器组装成一个强分类器。在PAC(probably approximately correct,概率近似正确)学习框架下,则一定可以将弱分类器组装成一个强分类器

步骤:
①、从初始训练集训练出一个基学习器,再将此基学习器做错的训练样本提升权重,使其在后面有更大的影响。
②、然后基于调整的样本再训练下一个基学习器,如此往复。
③、直至基学习器数目达到预值T,再将这T个基学习器加权结合。

核心问题:

①、每一轮训练集的权重如何调整?
通过提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样例的权值,来使得分类器对误分的数
据有较好的效果。
②、每个基学习器如何加权相加
通过加法模型将弱分类器进行线性组合

3.2 代表算法

①、AdaBoost
在这里插入图片描述
在这里插入图片描述
其中Zm为规范因子,它使D(m+1)成为一个概率分布

(3)构建基分类器线性组合
在这里插入图片描述
sklearn实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
②、GBDT(Gradient Boost Decision Tree)

DT-Decision Tree决策树,GB是Gradient Boosting,是一种学习策略,GBDT的含义就是用Gradient Boosting
的策略训练出来的DT模型(使用GB+回归树组合的策略叫GBRT)

四、结合策略

学习器结合的好处:

①、提升泛化能力
②、可以找到全局最优解
③、训练效果更好

对基学习器组合的方式

①、平均法(加权平均法)
②、投票法(加权投票法)
③、学习法

Stacking方法是指训练一个模型用于组合其他各个模型。首先我们先训练多个不同的模型,然后把之前训练的各 个模型的输出为输入来训练一个模型,以得到一个最终的输出。理论上,Stacking可以表示上面提到的两种Ensemble方法,只要我们采用合适的型组合策略即可。但在实际中,我们通常使用logistic回归作为组合策略。
在这里插入图片描述

五、多样性

5.1 多样性度量

在这里插入图片描述
在这里插入图片描述

5.2 多样性增强

①、样本扰动
②、属性扰动
③、输出表示扰动
④、算法参数扰动

六、bagging和boost区别

1)样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分
类结果进行调整。
2)样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
3)预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
4)并行计算:
Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值