Boosting算法是一种集成建模技术,可以将多个弱分类器集成一个强分类器,进而提高算法模型的准确性。
Boosting算法基本原理
Boosting算法通过串联使用弱模型来构建完整模型。首先,根据训练数据建立算法模型,然后建立第二个算法模型,并以此纠正第一个模型中存在的错误,继续此过程,直到正确预测完整的训练数据集或添加最大数量的模型。
Boosting算法类型
1、自适应提升
自适应提升(AdaBoost)是最早开发的提升模型之一。它会在提升流程的每次反复运算中进行自适应并尝试自我修正。
AdaBoost最初会为每个资料集赋予相同的权重。然后,它会在每个决策树之后自动调节资料点的权重。它会赋予错误分类的项目更多的权重,以便在下一轮进行修正。它会重复该流程,直到残差或实际值与预测值之间的差异低于可接受的阈值。
可以将AdaBoost与许多预测工具搭配使用,并且它通常不会像其他提升演算法那样敏感。需要注意的是,当功能或高维度之间存在关联性时,这种方法效果不佳。
整体而言,AdaBoost是一种适用于分类问题的提升类型。
2、梯度提升
梯度提升(GB)与AdaBoost相似,因为它也是一种连续训练技术。AdaBoost和GB的区别在于GB不会赋予错误分类的项目更多的权重。相反,GB软体会透过连续产生基础学习程式来最佳化损失函数,这样一来,目前的基础学习程式总能比前一个更有效。
这种方法最初尝试产生准确的结果,而不是像AdaBoost那样在整个流程中修正错误。因此,GB软体可以得出更准确的结果。梯度提升可以帮助解决基于分类和回归的问题。
3、极端梯度提升
极端梯度提升(XGBoost)采用多种方式来改进梯度提升,进而提高运算速度和规模。XGBoost在CPU上使用了多个核心,以便在训练期间可以平行学习。它是一种提升演算法,可处理广泛的资料集,使其对大数据应用程式更具吸引力。
Boosting算法优势
1、简单易解读
简单且易于解读的演算方法,可从错误中吸取经验教训,这些演算方法不需要预处理。
2、减少偏差
偏差是机器学习结果中的不确定性或不准确度。提升演算法采用连续方法将多个弱学习程式进行组合,从而反复改进观察结果。这种方法有助于减少机器学习模型中常见的高偏差。
3、提高运算效率
在训练期间,会优先考虑可提高预测准确度的功能。它们可助力减少资料属性并有效地处理大型资料集。