盛行于机器学习竞赛的Boosting,一文讲透足够了
作者头像
  • 2020-02-28 12:41:48 4

Boosting算法概览

你是否知道,在机器学习中至少有两种流行的Boosting算法?Boosting算法已经存在多年,但近年来才成为机器学习领域的主流。那么,为什么Boosting如此受欢迎呢?

其中一个主要原因是机器学习竞赛。Boosting能够显著提高模型的预测准确性。如果你参加过Kaggle竞赛或DataHack黑客马拉松,就会发现Boosting非常受欢迎!

简而言之,Boosting算法通常比简单的模型如逻辑回归和决策树更优越。事实上,许多顶级产品都是通过使用Boosting算法实现的。

本文将介绍四种流行的Boosting算法,供你在下一个机器学习项目中使用。

Boosting快速入门

假设你已经建立了一个线性回归模型,该模型在验证数据集上的准确率为77%。接着,你又分别建立了k近邻算法(KNN)模型和决策树模型,它们在验证集上的准确率分别为62%和89%。

显然,这三个模型的工作方式各不相同。例如,线性回归模型试图捕捉数据中的线性关系,而决策树模型则试图捕捉非线性的关系。

那么,如果我们结合所有这些模型的预测结果,而不是单独使用其中任何一个模型,会怎么样?

这里的关键在于计算所有模型预测的平均值。这样一来,我们可以从数据中获取更多有用的信息。

这便是集成学习的核心思想。Boosting正是利用集成学习的概念,通过结合多个简单的模型(称为弱学习者或基础估计量)来生成最终的预测。

接下来,我们将介绍几种重要的Boosting算法。

机器学习中的四种Boosting算法

以下是四种流行的Boosting算法:

  1. 梯度提升机(GBM)
  2. 极端梯度提升机(XGBM)
  3. 轻量梯度提升机(LightGBM)
  4. 分类提升算法(CatBoost)

1. 梯度提升机(GBM)

梯度提升机(GBM)通过结合多个决策树的预测来生成最终的预测。需要注意的是,GBM中的所有弱学习者都是决策树。

但是,使用多个决策树真的比只用一个决策树更好吗?不同决策树如何从数据中捕捉不同的信息?

关键在于每个决策树的节点都会采用不同的特征子集来选择最佳分割。这意味着各个树并不是完全相同的,因此可以从数据中捕捉不同的信息。

另外,每棵新树都会考虑前一棵树的错误。因此,每个连续的决策树都是基于前一棵树的错误构建的。这就是梯度提升机中树的构建方式。

2. 极端梯度提升机(XGBM)

极端梯度提升机(XGBoost)是GBM的一种改进版本。XGBoost的工作原理与GBM类似,但XGBoost中的树是按顺序构建的,旨在纠正前一棵树的错误。

然而,XGBoost有一些独特的优点:

  1. 并行处理:XGBoost在节点级别实现了并行处理,使其比GBM更快。
  2. 正则化技术:XGBoost包括各种正则化技术,可以减少过拟合并改善整体性能。可以通过设置超参数来选择正则化技术。
  3. 缺失值处理:XGBoost能够自动处理缺失值。在训练过程中,模型会学习缺失值应该位于右节点还是左节点。

3. 轻量梯度提升机(LightGBM)

由于其速度和效率,LightGBM现在变得越来越流行。LightGBM可以轻松处理大量数据。不过需要注意的是,该算法在少数数据点上的性能可能不佳。

让我们了解一下为什么会出现这种情况。

在LightGBM中,树是按叶向生长的,而不是按水平生长。在第一次分割后,下一次分割只会发生在损失较大的叶节点上。

考虑下面的例子:

第一次分割后,左侧节点的损失较高,因此被选为下一个分割的目标。现在,我们有三个叶节点,中间叶节点的损失最大。LightGBM算法的按叶分割使得它能够高效地处理大型数据集。

为了加速训练过程,LightGBM使用基于直方图的方法来选择最佳分割。对于任何连续变量,这些变量会被分成仓或桶。这种方法不仅加快了训练过程,还减少了内存消耗。

4. 分类提升算法(CatBoost)

顾名思义,CatBoost是一种处理数据中分类变量的Boosting算法。大多数机器学习算法无法直接处理数据中的字符串或类别。因此,将分类变量转换为数值是一个重要的预处理步骤。

CatBoost能够在外部处理数据中的分类变量。通过利用特征组合的各种统计信息,将这些变量转换为数值变量。

如果你想了解如何将这些类别转换为数字,可以参考以下文章:

[i]https://catboost.ai/docs/concepts/algorithm-main-stages_cat-to-numberic.html[/i]

CatBoost之所以广泛应用的另一个原因是,它可以很好地处理默认的超参数集。因此,作为用户,我们不需要花费太多时间调整超参数。

结论

本文介绍了集成学习的基础知识,并探讨了四种流行的Boosting算法。如果你对其他集成学习方法感兴趣,可以参考以下文章:

[i]综合学习综合指南(附Python代码):[/i][i]https://www.analyticsvidhya.com/blog/2018/06/comprehensive-guide-for-ensemble-models/?utmsource=blog&utmmedium=4-boosting-algorithms-machine-learning[/i]

你是否还使用过其他Boosting算法?使用这些算法取得了哪些成功?欢迎在评论区分享你的经验和见解。

    本文来源:图灵汇
责任编辑: :
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
一文盛行竞赛Boosting足够机器学习
    下一篇