集成学习
Ensemble Learning
将多个单个算法集成在一起进行建模,以提高预测的准确性和鲁棒性。
一、集成学习基本类型
Bagging
从训练集中进行子抽样组成每个基模型所需要的子训练集,对所有基模型预测的结果进行综合产生最终的预测结果。(民主投票)
Boosting
训练过程为阶梯状,基模型按次序一一进行训练(实现上可以做到并行),基模型的训练集按照某种策略每次都进行一定的转化。对所有基模型预测的结果进行线性综合产生最终的预测结果。(精英模型投票权更高)
Stacking
元估计器+基础估计器
将训练好的所有基模型对训练基进行预测,第j个基模型对第i个训练样本的预测值将作为新的训练集中第i个样本的第j个特征值,最后基于新的训练集进行训练。同理,预测的过程也要先经过所有基模型的预测形成新的测试集,最后再对测试集进行预测。
二、实际模型
随机森林
Random Forest
以决策树为基学习器构建 Bagging 集成、在决策树的训练过程中引入随机特征选择
- 随机选择样本
- 随机选择特征
- 构建决策树
- 随机森林投票
Adaboost
Adaptive Boosting 自适应增强:前一个基本分类器分错的样本会得到加强,加权后的全体样本再次被用来训练下一个基本分类器。同时,在每一轮中加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数。
基本思想:
- 初始化训练样本的权值分布,每个样本具有相同权重;
- 训练弱分类器,如果样本分类正确,则在构造下一个训练集中,它的权值就会被降低;反之提高。用更新过的样本集去训练下一个分类器;
- 将所有弱分类组合成强分类器,各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器的权重,降低分类误差率大的弱分类器的权重
后一个模型的训练永远是在前一个模型的基础上完成
GBDT
Gradient Boosting Decision Tree
boosting 决策树
Regression Decision Tree(DT) Gradient Boosting( GB) Shrinkage
XGBoost
大规模并行 boosting tree 的工具,分裂方式:使用贪心方法,选增益最大的分裂方式
LightGBM
LightGBM = XGBoost + GOSS + EFB+ Histogram
主要用于解决 GDBT 在海量数据中遇到的问题,以便其可以更好更快地用于工业实践中,相对 XGBoost 具有训练速度快、内存占用低的特点。
- 基于梯度的单边采样算法 GOSS :通过对样本采样的方法来减少计算目标函数增益时候的复杂度
- 互斥特征捆绑算法 EFB : 将一些特征进行融合绑定,可以降低特征数量
- 直方图算法 Histogram :连续的特征离散化为离散特征,同时构造直方图用于统计信息
- 基于最大深度的 Leaf-wise 的垂直生长算法,选取具有最大 delta loss 的叶节点来生长