从训练集中进行子抽样组成每个基模型所需要的子训练集,对所有基模型预测的结果进行综合产生最终的预测结果:
假设一个班级每个人的成绩都不太好,每个人单独做的考卷分数都不高,但每个人都把自己会做的部分做了,把所有考卷综合起来得到成绩就会比一个人做的高
训练过程为阶梯状,基模型按次序一一进行训练(实现上可以做到并行),基模型的训练集按照某种策略每次都进行一定的转化。对所有基模型预测的结果进行线性综合产生最终的预测结果。
将训练好的所有基模型对训练基进行预测,第j个基模型对第i个训练样本的预测值将作为新的训练集中第i个样本的第j个特征值,最后基于新的训练集进行训练。同理,预测的过程也要先经过所有基模型的预测形成新的测试集,最后再对测试集进行预测。
用随机的方式建立一个森林。随机森林算法由很多决策树组成,每一棵决策树之间没有关联。建立完森林后,当有新样本进入时,每棵决策树都会分别进行判断,然后基于投票法给出分类结果。
Random Forest(随机森林)是 Bagging 的扩展变体,它在以决策树为基学习器构建Bagging 集成的基础上,进一步在决策树的训练过程中引入了随机特征选择,因此可以概括 随机森林包括四个部分:
AdaBoost(Adaptive Boosting,自适应增强),其自适应在于:前一个基本分类器分错的样本会得到加强,加权后的全体样本再次被用来训练下一个基本分类器。同时,在每一轮中加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数。
用一句话概括该思想就是后一个模型的训练永远是在前一个模型的基础上完成
GBDT(Gradient Boosting Decision Tree)是一种迭代的决策树算法,该算法由多棵决策树组成,GBDT 的核心在于累加所有树的结果作为最终结果,所以 GBDT 中的树都是回归树,不是分类树,它是属于 Boosting 策略。GBDT 是被公认的泛化能力较强的算法。
损失函数的负梯度在当前模型的值作为提升树的残差的近似值来拟合回归树
XGBoost 是大规模并行 boosting tree 的工具,它是目前最快最好的开源 boosting tree 工具包
,比常见的工具包快 10 倍以上。XGBoost 和GBDT 两者都是 boosting 方法,除了工程实现及解决问题上的一些差异外,最大的不同就是目标函数的定义。
由微软提出,主要用于解决 GDBT 在海量数据中遇到的问题,以便其可以更好更快地用于工业实践中,其相对 XGBoost 具有训练速度快、内存占用低的特点。
LightGBM与XGBoost相比,主要有以下几个优势:
1)更快的训练速度
2)更低的内存消耗
3)更好的准确率
4)分布式支持,可快速处理海量数据
LightGBM 的主要改进
LightGBM与XGBoost相比,主要有以下几个改进:
• 基于梯度的单边采样算法(Gradient-based One-Side Sampling, GOSS);
• 互斥特征捆绑算法(Exclusive Feature Bundling, EFB);
• 直方图算法( Histogram );
• 基于最大深度的 Leaf-wise 的垂直生长算法;
LightGBM = XGBoost + GOSS + EFB+ Histogram
主要思想是通过对样本采样的方法来减少计算目标函数增益时候的复杂度。
GOSS 算法保留了梯度大的样本,并对梯度小的样本进行随机抽样,为了不改变样本的数据分布,在计算增益时为梯度小的样本引入一个常数进行平衡。
如果一个样本的梯度很小,说明该样本的训练误差很小,或者说该样本已经得到了很好的训练(well-trained)。
高维特征往往是稀疏的,而且特征间可能是相互排斥的(如两个特征不同时取非零值),如果两个特征并不完全互斥(如只有一部分情况下是不同时取非零值),可以用互斥率表示互斥程度。EFB算法指出如果将一些特征进行融合绑定,则可以降低特征数量。
论文给出特征合并算法,其关键在于原始特征能从合并的特征中分离出来
直方图算法的基本思想是将连续的特征离散化为个离散特征,同时构造一个宽度为的直方图用于统计信息(含有 个 bin)。利用直方图算法我们无需遍历数据,只需要遍历 个 bin 即可找到最佳分裂点。