一、基本概念
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)
参数名 | 描述 |
---|---|
base_estimator | 基学习器,一个算法对象 |
n_estimators | 基学习器数量 |
max_samples | 随机样本子集的最大个数 |
max_features | 随机特征子集的最大个数 |
bootstrap | 控制样本是否是又放回取样 |
控制样本是否是又放回取样 | 控制特征是否是有放回取样 |
②、Random Forest
由决策树作为基学习器的Bagging方法。在随机森林中,集成中的每棵树都是由从训练集中抽取的样本(即
bootstrap 样本)构建的。另外,与使用所有特征不同,这里随机选择特征子集,从而进一步达到对树的随机化目
的。 因此,随机森林产生的偏差略有增加,但是由于对相关性较小的树计算平均值,估计方差减小了,导致模型的
整体效果更好。
随机方式:样本随机 特征随机 参数随机 模型随机(ID3 ,C4.5)
随机森林和bagging区别:
多样性不仅通过样本扰动,还通过属性扰动
随机森林训练效率更高,因为它是随机考察一个属性子集
③、Extra T