集成学习
假设你有15个朋友给你出主意投资股票,你怎么做最终的决定?
- 选择最牛x的一个朋友的意见当作自己的意见(找到最好的单颗决策树)
- 所有朋友的意见投票,少数服从多数(随机森林)
- 还是投票牛一点的朋友多给几票,弱鸡一点的少给几票(Adaboost)
- 买啥跌啥的朋友意见该怎么办?(使用技巧)
聚合模型 Aggregation Model
- 所有朋友的意见投票, 少数服从多数
随机森林
2. 还是投票牛x一点的朋友多给几票, 弱鸡一点的少给几票
可是,我没有朋友
制造一些朋友…g(x),每一个朋友好比是一个base model。
如果每个人的看法都一模一样 那没有投票的意义
制造出看法迥异 但是多少都有些道理的朋友
(
随机森林:随机的理解?因为算法是一样的 所以我们可以选用不一样的数据 产生不一样的模型 ,数据不一样的选择方法:随机random
)
随机森林是采用了集成学习的思想。
权重相同少数服从多数的投票方式(随机森林)。强者权重大,弱者权重小的投票方式(adaboost)。
问题1: 对于没有朋友的如何制造出一些朋友g(x)
如何生成g(x)
同样的数据, 行列都相同,不同得超参数,可以得到不同的模型。
同样的超参数,行相同,列不同,可以得到不同的模型。
同样的超参数,列相同,行不同,可以得到不同的模型。
同样的超参数,同样的数据,但是数据权重不同,可以得到不同的模型。
集成学习会有两种聚合思路,:有了一堆g(x),一种是权重全为一聚合,一种是权重不同的聚合。
产生g(x)有两种不一样的生成方式,一种是bagging,一种是boosting
Bagging
对训练集进行抽样, 将抽样的结果用于训练g(x)。
并行,独立训练。random forest采用该方式
Boosting
利用训练集训练出模型 根据本次模型的预测结果, 调整训练集, 然后利用
调整后的训练集训练下一个模型。串行,需要第一个模型。adaboost,GBDT,Xgboost
Bagging
Bootstrap : 是指有放回地对原始数据集进行均匀抽样
利用每次抽样生成的数据集训练模型
最终的模型为每次生成的模型进行投票
其实boosting和bagging都不仅局限于对决策树这种基模型适应
如果不是同一种base model,stacking(堆叠)
说明:有放回的抽样保证权重一致。
随机森林
Bagging思想+决策树作为base model+uniform blending
问题点:我们看到随机森林采用了fully grown模式(完全生长),有没有问题呢?
答案是没有的:因为数是采用的,即使采用了fully grown也不会产生过拟合。
Blending方法是区别于bagging和boosting的另一种集成模型的方法。
在已经得到多个弱学习器的状况下,如何将这些弱学习器的预测值联合起来,得到更好的预测值,就是Blending做的事情。
1、Uniform Blending
uniform Blending(平均Blending)是最简单的一种Blending方法。
定义:已知多个弱学习器,每个的权重相同,(G代表融合后的模型)。
对于Classification问题: ,K为label类别值。(类似投票,取票数最多的预测结果)
对于Regression问题: ,(对所有预测结果取平均)
1.1、unifor Blending 理论支持
证明:对于Regression问题,以MSE为优化函数,证明Blending model强于单model。
2、Linear Blending
定义:已知,对于每个给定一个权重。(非平均权重)
对于Classification问题,
对于Regression问题:
找到这个‘good’ ,就是Linear Blending的答案。
怎么找?
,这个公式实质上就是linearRegression,只不过参数多了个大于0的限制。
3、Any Blending(Stacking)
Linear Blending是使用linearRegression拟合融合时使用的。
Stacking则是使用non-linear model拟合融合时的参数。
通常Stacking与k折交叉验证一同使用。
都有哪些随机?
- bagging生成小树时随机抽样数据
2.抽样数据后 对feature也进行抽样
随机森林表现
复杂数据表现
有噪声数据表现
总结
随机森林的优点:
- 表现良好
- 可以处理高维度数据(维度随机选择)
- 辅助进行特征选择
- 得益于bagging 可以进行并行训练
缺点:
对于噪声过大的数据容易过拟合