集成学习算法总结

Frey August 19, 2019 [算法] #Bagging #Boosting #Gradient Boosting

集成学习算法是指使用多个分类器提高整体的泛化能力

1.Bagging(Bootstrap Aggregating)算法

通过组合随机生成的训练集而改进分类的集成算法(bootstrap)

使用训练集中的某个子集作为当前训练集(有放回随机抽样);经过T次训练后,得到T个不同的分类器

调用这T个分类器,把这T个分类结果中出现次数多的类赋予测试样例

有效减少噪声影响

2.Boosting算法

初始化样本权重,生成一个弱分类器;

利用弱分类器增加分类错误的样本的权重;

不断重复,生成T个弱分类器;

对噪声敏感

改进算法-AdaBoosting算法

3.Gradient Boosting

1,初始化

$$ f_0(x)=\arg\min_\gamma\sum_{i=1}^NL(y_i,\gamma) $$

2.1计算负梯度

$$ \widetilde y_i = -\frac{\partial L(y_i,f_{m-1}(x_i))}{\partial f_{m-1}(x_i)}, i=1,2,\cdots N $$

2.2用基学习器$ h_m(x) $ 拟合$ \widetilde y_i $

$$ w_m=\mathop{\arg\min}\limits_w\sum_{i=1}^N[\widetilde y_i-h_m(x_i;w)]^2 $$

2.3确定步长$ \rho_m $

$$ \rho_m = \mathop{\arg\min}\limits_{\rho} \sum\limits_{i=1}^{N} L(y_i,f_{m-1}(x_i) + \rho h_m(x_i,;,w_m)) $$

2.4更新$ f_m(x) $ 最终得到$ f_M(x) $

$$ f_m(x) = f_{m-1}(x) + \rho_m h_m(x,;,w_m) $$

Bagging + 决策树 = 随机森林

AdaBoost + 决策树 = 提升树

Gradient Boosting + 决策树 = GBDT

Back to top