1 Bagging pk Boosting
☑️ Bagging和Boosting对比
装袋法 Bagging | 提升法 Boosting | |
---|---|---|
弱评估器 | 相互独立,并行构建 | 相互关联,按顺序依次构建先建弱分类器的预测效果影响后续模型的建立 |
集成的结果 | 回归平均分类众数 | 每个算法具有自己独特的规则,一般来说: (1) 表现为某种分数的加权平均,(2) 使用输出函数 |
目标 | 降低方差。提高模型整体的稳定性来提升泛化能力,本质是从“平均”这一数学行为中获利 | 降低偏差。提高模型整体的精确度来提升泛化能力,相信众多弱分类器叠加后可以等同于强学习器 |
建树前的抽样方式 | 样本有放回抽样,特征无放回抽样 | 样本有放回抽样,特征无放回抽样;先建弱分类器的预测效果可能影响抽样细节 |
单个评估器容易过拟合的时候 | 具有一定的抗过拟合能力 | 具有一定的抗过拟合能力 |
单个评估器的效力比较弱的时候 | 可能失效 | 大概率会提升模型表现 |
代表算法 | 随机森林 | 梯度提升树,Adaboost |
2 Boosting算法的基本元素与基本原理
📖 Boosting算法的三大基本元素
- 损失函数 𝐿(𝑥,𝑦) :用以衡量模型预测结果与真实结果的差异
- 弱评估器 𝑓(𝑥) :(一般为)决策树,不同的boosting算法使用不同的建树过程
- 综合集成结果 𝐻(𝑥) :即集成算法具体如何输出集成结果
☑️ Boosting算法的流程原理
- 依据上一个弱评估器 f ( x ) t − 1 f(x)_{t−1} f(x)t−1 的结果,计算损失函数 𝐿(𝑥,𝑦) ;
- 并使用 𝐿(𝑥,𝑦) 自适应地影响下一个弱评估器 f ( x ) t f(x)_t f(x)t 的构建;
- 集成模型输出的结果,受到整体所有弱评估器 f ( x ) 0 ∼ f ( x ) T f(x)_0\sim{f(x)_T} f(x)0∼f(x)T 的影响。
3 sklearn中的boosting算法
☑️ sklearn中的boosting算法
Boosting算法 | 库 | 集成类 |
---|---|---|
ADB分类 | sklearn | AdaBoostClassifer |
ADB回归 | sklearn | AdaBoostRegressor |
梯度提升树分类 | sklearn | GradientBoostingClassifier |
梯度提升树回归 | sklearn | GradientBoostingRegressor |
直方提升树分类 | sklearn | HistGraidientBoostingClassifier |
直方提升树回归 | sklearn | HistGraidientBoostingRegressor |
极限提升树 | 第三方库xgboost | xgboost.train() |
轻量梯度提升树 | 第三方库lightgbm | lightgbm.train() |
离散提升树 | 第三方库catboost | catboost.train() |