Boosting是流行的学习集成建模技术之一,用于从各种弱分类器构建强分类器。它首先根据可用的训练数据集构建主要模型,然后识别基本模型中存在的错误。识别错误后,建立第二个模型,并进一步在此过程中引入第三个模型。这样,引入更多模型的过程就会持续下去,直到我们得到一个完整的训练数据集,模型可以通过该数据集进行正确的预测。
Boosting算法的步骤:
增强算法有以下几个重要步骤:
考虑具有不同数据点的数据集并对其进行初始化。
现在,为每个数据点赋予相同的权重。
假设该权重作为模型的输入。
识别错误分类的数据点。
增加步骤4中数据点的权重。
如果获得适当的输出,则终止此过程,否则再次执行步骤2和3。
例子:
假设我们有三个不同的模型及其预测,并且它们以完全不同的方式工作。例如,线性回归模型显示数据中的线性关系,而决策树模型尝试捕获数据中的非线性关系,如下图所示。
增强机器学习中的算法
机器学习中主要有4种boosting算法。具体如下:
梯度提升机(GBM)
极限梯度提升机(XGBM)
轻型GBM
猫助推器
机器学习中的GBM是什么?
梯度提升机(GBM)是机器学习中最流行的前向学习集成方法之一。它是构建回归和分类任务预测模型的强大技术。
GBM帮助我们获得弱预测模型(例如决策树)集合形式的预测模型。每当决策树作为弱学习器执行时,生成的算法就称为梯度增强树。
它使我们能够结合来自各种学习器模型的预测,并构建具有正确预测的最终预测模型。
但这里可能会出现一个问题,如果我们应用相同的算法,那么多个决策树如何能够比单个决策树提供更好的预测?此外,每个决策树如何从相同的数据中捕获不同的信息?
GBM是如何运作的?
一般来说,大多数监督学习算法都基于单一预测模型,例如线性回归、惩罚回归模型、决策树等。但是机器学习中也有一些监督算法依赖于通过集成将各种模型组合在一起。换句话说,当多个基本模型贡献其预测时,所有预测的平均值将通过增强算法进行调整。
梯度增强机由以下3个要素组成:
损失函数
学习能力较弱
加法模型
让我们详细了解这三个要素。
1.损失函数:
尽管如此,机器学习中有很多损失函数,可以根据要解决的任务类型来使用。损失函数的使用是根据条件分布的鲁棒性等具体特征的需求来估计的。在我们的任务中使用损失函数时,我们必须指定损失函数和计算相应负梯度的函数。一旦我们得到了这两个函数,它们就可以很容易地实现到梯度提升机中。然而,已经为GBM算法提出了几种损失函数。
损失函数的分类:
根据响应变量y的类型,损失函数可以分为以下不同类型:
连续响应,y∈R:
高斯L2损失函数
拉普拉斯L1损失函数
Huber损失函数,指定δ
分位数损失函数,指定α
分类响应,y∈{0,1}:
二项式损失函数
Adaboost损失函数
其他响应变量系列:
生存模型的损失函数
损失函数计数数据
自定义损失函数
2.弱学习者:
弱学习器是基础学习器模型,可以从过去的错误中学习,并帮助构建强大的预测模型设计,以增强机器学习中的算法。一般来说,决策树在增强算法中充当弱学习器。
Boosting被定义为持续改进基础模型输出的框架。许多梯度增强应用程序允许您“插入”各种类别的弱学习器供您使用。因此,决策树最常用于弱(基础)学习器。
如何训练弱学习者:
下面是训练弱学习器以提高其性能的序列,其中每棵树都与前一棵树的残差位于序列中。此外,我们引入每棵新树,以便它可以从前一棵树的错误中学习。具体如下:
考虑一个数据集并在其中拟合决策树。
F1(x)=y
用前一棵树的最大误差来拟合下一棵决策树。
h1(x)=yF1(x)
通过在步骤1和2中添加这棵新树,将其添加到算法中。
F2(x)=F1(x)+h1(x)
再次将下一个决策树与前一个决策树的残差进行拟合。
h2(x)=yF2(x)
重复我们在步骤3中所做的相同操作。
F3(x)=F2(x)+h2(x)
继续这个过程,直到某种机制(即交叉验证)告诉我们停止。这里的最终模型是b个个体树的阶段性加性模型:
f(x)=BΣb=1fb(x)
因此,树是贪婪地构建的,根据基尼等纯度分数选择最佳分割点或最小化损失。
3.加法模型:
加性模型被定义为向模型添加树。尽管我们不应该一次添加多棵树,但必须只添加一棵树,这样模型中的现有树就不会改变。此外,我们还可以通过添加树来选择梯度下降法来减少损失。
该方法也称为函数梯度下降或函数梯度下降。
极限梯度提升机(XGBM)
XGBM使用各种正则化技术来减少模型的欠拟合或过拟合,这也比梯度增强机更能提高模型性能。
XGBM遵循每个节点的并行处理,而GBM则不然,这使得它比梯度增强机更快。
XGBM帮助我们摆脱缺失值的插补,因为默认情况下模型会处理它。它自行了解这些值是否应该位于右侧节点或左侧节点中。
光梯度增强机(LightGBM)
LightGBM是梯度增强机的升级版,因其效率高且速度快。与GBM和XGBM不同,它可以处理大量数据而没有任何复杂性。另一方面,它不适合那些数量较少的数据点。
LightGBM更喜欢树节点的叶向生长,而不是水平生长。此外,在lightGBM中,主节点被分裂为两个辅助节点,然后选择一个辅助节点进行分裂。辅助节点的这种分裂取决于两个节点之间哪个具有更高的损耗。
因此,由于叶向分割,在给定大量数据的情况下,光梯度提升机(LGBM)算法始终优于其他算法。
CATBOOST
catboost算法主要用于处理数据集中的分类特征。尽管GBM、XGBM和LightGBM算法适用于数值数据集,但Catboost旨在将分类变量处理为数值数据。因此,catboost算法包含一个重要的预处理步骤,用于将分类特征转换为任何其他算法中不存在的数值变量。
Boosting算法的优点:
增强算法遵循集成学习,这使得模型能够给出更准确的预测,这是不可超越的。
Boosting算法比其他算法灵活得多,因为它可以优化不同的损失函数并提供多种超参数调整选项。
它不需要数据预处理,因为它适用于数值变量和分类变量。
它不需要对数据集中的缺失值进行插补,它会自动处理缺失的数据。
Boosting算法的缺点:
以下是boosting算法的一些缺点:
提升算法可能会导致过度拟合以及过分强调异常值。
这是一种耗时且内存耗尽的算法。
尽管可以使用各种工具轻松解决这个问题,但本质上解释性较差。
结论:
通过这种方式,我们学习了机器学习中预测建模的增强算法。此外,我们还讨论了ML中使用的各种重要的boosting算法,例如GBM、XGBM、lightGBM和Catboost。此外,我们还了解了各种组件(损失函数、弱学习器和加性模型)以及GBM如何与它们配合使用。Boosting算法如何有利于在现实场景中的部署等。