集成学习(ensemble learning)
-
集成学习是集合多个弱监督模型,通过一定的结合策略,得到一个更好更全面的强监督模型的过程
-
潜在的思想是即使某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来
-
弱学习器:常指泛化性能略优于随机猜测的学习器,例如在二分类问题中精度略高于50%的分类器
-
强学习器:通过一定的方式集成一些弱学习器,达到了超过所有弱学习器的准确度的分类器
-
构建集成学习模型时需要先明确两个问题:
- 1.如何得到若干个个体学习器
- 2.如何选择结合策略
问题1:如何得到若干个个体学习器
若学习器是同质的,一个类型的---bagging,boosting
继续划分,看学习器之间是否存在依赖关系
- 不在依赖关系:bagging
- 存在:boosting
学习器异质---Stacking
1.bagging(装袋法)
-
方法的关键是自主采样法(Bootstrap sampling),方法原理是,从N个样本的训练集中,取N次样本,每取一次,放回,也就是说取到的N个样本中,可能有重复的,也会有相当一部分样本没有被取到过
-
这样做的话,初始数据集中约有63.2%的样本出现在采样数据集中,36.8%的样本不出现
-
概率计算:
-
从数据集中取N次样本,每次都放回,样本A不被取到的概率为 ( 1 − 1 N ) N (1-\frac 1 N)^N (1−N1)N,当 N → ∞ N\to\infty N→∞,上式 = 1 e =\frac 1 e =e1
-
该方法可分类,可回归
-
分类任务,投票表决,回归任务,平均法
-
代表:随机森林
2.boosting(提升法)
- 原理:先基于数据集,对每个样本附一个初始权重(相等),构建一个基模型,根据基模型的表现,对训练样本的权重进行调整,对分错的训练样本予以更大权重,在后续模型中重点关注、学习这些难分的样本,如此重复直到构建好K个模型
- 再将这K个模型进行加权整合
- 学到这里,我有几个疑问需要后续解决:
- 1.初始权重是否都是一样的值
- 2.对难分的训练样本权重调整多少?有什么规则?怎样选择调整量?
- 3.最后对这K个模型进行加权整合时,每个模型的权重是如何确定的?
- 4.在加大对难分的样本的权重后,模型是否会有效果的提升?
- 5.就算加大了这个训练样本的权重,在训练时怎么运用这个权重?
- 代表模型:AdaBoost, Xgboost,GBDT