集成学习算法总结
集成学习算法是指使用多个分类器提高整体的泛化能力
1.Bagging(Bootstrap Aggregating)算法
通过组合随机生成的训练集而改进分类的集成算法(bootstrap)
使用训练集中的某个子集作为当前训练集(有放回随机抽样);经过T次训练后,得到T个不同的分类器
调用这T个分类器,把这T个分类结果中出现次数多的类赋予测试样例
有效减少噪声影响
2.Boosting算法
初始化样本权重,生成一个弱分类器;
利用弱分类器增加分类错误的样本的权重;
不断重复,生成T个弱分类器;
对噪声敏感
改进算法-AdaBoosting算法
- 对每一次的训练数据样本赋予一个权重,并且每一次样本的权重分布依赖上一次的分类结果
- 基分类器之间采用序列的线性加权方式来组合
3.Gradient Boosting
1,初始化
f0(x)=argγmini=1∑NL(yi,γ)
2.1计算负梯度
yi=−∂fm−1(xi)∂L(yi,fm−1(xi)),i=1,2,⋯N
2.2用基学习器hm(x) 拟合yi
wm=wargmini=1∑N[yi−hm(xi;w)]2
2.3确定步长ρm
ρm=ρargmini=1∑NL(yi,fm−1(xi)+ρhm(xi;wm))
2.4更新fm(x) 最终得到fM(x)
fm(x)=fm−1(x)+ρmhm(x;wm)
Bagging + 决策树 = 随机森林
AdaBoost + 决策树 = 提升树
Gradient Boosting + 决策树 = GBDT