一文详解机器学习中的梯度提升机

机器学习是为各种复杂的回归和分类任务构建预测模型的最流行的技术之一。梯度提升机(GradientBoostingMachine,GBM)被认为是最强大的提升算法之一。

尽管机器学习中使用的算法非常多,但Boosting算法已成为全球机器学习社区的主流。Boosting技术遵循集成学习的概念,因此它结合了多个简单模型(弱学习器或基础估计器)来生成最终输出。GBM还用作机器学习中的集成方法,将弱学习器转换为强学习器。在本主题“机器学习中的GBM”中,我们将讨论梯度机器学习算法、机器学习中的各种boosting算法、GBM的历史、它的工作原理、GBM中使用的各种术语等。但在开始之前,首先,了解机器学习中的boosting概念和各种boosting算法。

什么是机器学习中的Boosting?

Boosting是流行的学习集成建模技术之一,用于从各种弱分类器构建强分类器。它首先根据可用的训练数据集构建主要模型,然后识别基本模型中存在的错误。识别错误后,建立第二个模型,并进一步在此过程中引入第三个模型。这样,引入更多模型的过程就会持续下去,直到我们得到一个完整的训练数据集,模型可以通过该数据集进行正确的预测。

AdaBoost(自适应增强)是机器学习历史上第一个将各种弱分类器组合成单个强分类器的增强算法。它主要致力于解决二元分类等分类任务。

Boosting算法的步骤:

增强算法有以下几个重要步骤:

考虑具有不同数据点的数据集并对其进行初始化。

现在,为每个数据点赋予相同的权重。

假设该权重作为模型的输入。

识别错误分类的数据点。

增加步骤4中数据点的权重。

如果获得适当的输出,则终止此过程,否则再次执行步骤2和3。

例子:

假设我们有三个不同的模型及其预测,并且它们以完全不同的方式工作。例如,线性回归模型显示数据中的线性关系,而决策树模型尝试捕获数据中的非线性关系,如下图所示。

此外,如果我们以系列或组合的形式使用这些模型,而不是单独使用这些模型来预测结果,那么我们会得到一个比所有基本模型具有正确信息的结果模型。换句话说,如果我们使用这些模型的平均预测,而不是使用每个模型的单独预测,那么我们将能够从数据中捕获更多信息。它被称为集成学习,Boosting也是基于机器学习中的集成方法。

增强机器学习中的算法

机器学习中主要有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是梯度增强机的最新版本,其工作原理也与GBM非常相似。在XGBM中,树是按顺序添加的(一次一棵),从先前树的错误中学习并改进它们。虽然XGBM和GBM算法在外观和感觉上很相似,但它们之间仍然存在一些差异,如下所示:

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算法如何有利于在现实场景中的部署等。

THE END
1.如何提高AI智能推荐算法的准确度?在当今数字化时代,AI智能推荐算法在各个领域扮演着越来越重要的角色,从在线购物到内容流媒体,再到个性化广告,推荐系统无处不在。然而,提高AI智能推荐算法的准确度是一个复杂的过程,需要综合考虑数据质量、算法设计、用户行为等多个方面。以下是一些提高AI智能推荐算法准确度的方法和步骤: 1. 数据预处理和质量提升 https://www.kdocs.cn/article/0E57AEA1E1.html
2.GBDT集成算法(梯度提升树)GBDT集成算法(梯度提升树) 一、算法思想 GBDT是集成学习Boosting算法中的一种,它与Adaboost相比,Adaboost算法利用前一轮迭代弱学习器的误差率来更新训练集的权重,这样一轮轮的迭代下去,GBDT也是一轮一轮迭代弱学习器,使用前向分布算法,但是它限定弱学习器只能是决策树(CART回归树)。决策树分为两大类,回归树和https://www.imooc.com/article/257225
3.数据挖掘提升算法AdBoost算法通过处理训练数据集来组合方法:根据某种抽样分布对训练集进行抽样,从而得到多个训练集,用特定的算法为每个训练集建立一个分类模型。这种方式有两种常用的技术,装袋(Bagging)和提升(boosting)。 通过选择不同的输入特征的子集来形成训练集,随机森林(RandomForest)就是这种方式的代表。 https://www.jianshu.com/p/9e4db2759866
4.Python机器学习:通过scikitlearn实现集成算法下面是三种流行的集成算法的方法。 装袋(Bagging)算法:先将训练集分离成多个子集,然后通过各个子集训练多个模型。 提升(Boosting)算法:训练多个模型并组成一个序列,序列中的每一个模型都会修正前一个模型的错误。 投票(Voting)算法:训练多个模型,并采用样本统计来提高模型的准确度。 http://www.broadview.com.cn/article/419370
5.整版刊发学校师生调研团队《如何远离算法之“算计”?》一文新闻网讯4月7日,《光明日报》第07版“光明调查”整版刊发《如何远离算法之“算计”?》一文,文章由北京市习近平新时代中国特色社会主义思想研究中心特约研究员毛湛文牵头,联合光明日报与学校新闻与传播学院调研组共同完成,就个人用户的使用体验,梳理了算法化生存中的困境、挑战及具体应对表现,并就如何提升算法素养提出建议https://www.muc.edu.cn/info/1084/8418.htm
6.提升法算法(Boosting)和AdaBoost算法编程提升法(Boosting)是一种集成学习方法,通过将多个弱分类器组合成强分类器来提高整体预测性能。其中,AdaBoost(Adaptive Boosting)是提升法算法中最为著名和常用的一种。本文将从提升法算法的基本原理出发,详细介绍AdaBoost算法的工作机制和实现过程,并提供相应的源代码示例。 https://download.csdn.net/blog/column/12409545/132292324
7.机器学习各算法的优缺点!!案例:股票市场预测。使用多个梯度提升树来预测股票价格。 6、XGBoost(极端梯度提升)和LightGBM(轻量级梯度提升机) 这些是梯度提升树的高效实现,具有高度可扩展性和性能。 适用场景:高效的梯度提升算法,适用于大规模数据和高维特征。 案例:用户点击率预测。使用XGBoost或LightGBM来预测用户是否点击广告。 https://www.360doc.cn/article/50382475_1111478886.html
8.提升树2 提升树算法 提升树算法采用前向分步算法,首先确定初始提升树,f0(x)=0,第 m 步的模型是 fm(x)=fm?1(x)+T(x;Θm) 其中,fm?1(x)为当前模型,通过经验风险极小化确定下一棵决策树的参数Θm, 一般是求使得MSE取得最小值的的参数Θm https://zhuanlan.zhihu.com/p/518784730
9.老电影和图片变清晰的秘密!分辨率提升400%的AI算法已开源通过提升训练数据的清晰度 提升算法精度 无论是目标检测、图像识别,还是图像分类、语义分割等CV相关任务,训练数据质量的好坏对于最终任务效果影响都极大。因此,开发者可尝试通过PP-MSVSR将 任意分辨率 下的 视频数据提升至理想分辨率 ,实现下游的 检测、识别、分割等任务的准确率有效提升 。https://www.paddlepaddle.org.cn/support/news?action=detail&id=2716
10.DNF减少防御怎么算减少防御提升伤害算法在DNF游戏中除了正价自身的伤害的各种技能BF还有减少敌人防御的DF,那么DNF减少防御怎么算?减少防御能够提升多少伤害?下面就让小编我带大家去看看大神的算法介绍吧! DNF减少防御提升伤害算法 首先,我们先来看一下防御对减伤率的换算公式 减伤率=怪物防御/(角色等级x200+怪物防御) https://www.qqtn.com/article/article_229265_1.html
11.新手必看的Top10个机器学习算法学会了你就是老手AdaBoost是第一个真正成功的应用是二元分类的增强算法。这是理解提升算法的最佳起点。现代的提升算法都是在AdaBoost的基础上发展起来的,最著名的是随机梯度提升算法。 Adaboost AdaBoost用于短决策树。在创建第一个树之后,用这棵树来计算每个样本的performance(和label之间的差别),用来衡量下一棵树将更多的注意哪些样https://www.51cto.com/article/600359.html
12.如何通过算法,提升产品转化率?人人都是产品经理在设计工作中,如果想提升产品服务、推动转化率提升,结合数据算法找到优化方向,是一个相对不错的选择。那么在实际业务中,我们可以如何利用机器学习、数据算法等内容进行结合应用?本文便从概念、实操等维度入手做了内容解读,一起来看。 以用户为中心的产品设计中,根据不同的用户画像提供个性化的服务是必然趋势。设计师如何https://www.woshipm.com/pd/5808987.html
13.DWT域数字水印算法的FPGA实现AET提升算法的结构框图如图2所示,其提升实现过程由式(1)和式(2)表示,其中滤波系数α=-1/2, β=1/4。 本文将采用5/3小波滤波器来实现小波变换。 1.2 边界处理 由于图像数据是有限长的,因此离散小波变换必须对图像数据进行边界延拓,在做小波提升算法时,同样需要对其边界数据进行延拓,以保证边缘数据的正确。基于资源http://www.chinaaet.com/article/113724
14.GBDT(梯度提升决策树)算法(详细版)腾讯云开发者社区GBDT(梯度提升决策树)算法(详细版) 一、前言 通过之前的文章GBDT算法(简明版)对GBDT的过程做了大概的讲解,我们可以了解到GBDT是一种迭代的决策树算法,由多棵决策树组成,所有树的结论累加起来做最终答案。GBDT是一个应用很广泛的算法,可以用于分类,回归和特征选择,特别是用于和其他算法进行模型组成时,如logistic+https://cloud.tencent.com/developer/article/1082482
15.26万,确实可以封神了!2、高级篇,从 80 分到尖子生的区别,开拓视野,训练逻辑,提升算法思维,比如: 拓扑排序、最短路径、位图、统计问题、向量空间、B+树、搜索、索引、并行算法等等; 概念+ 应用,这里剖析的都是稍复杂一些的数据结构与算法,现在流行的区块链、人工智能等核心代码实现会涉及到这些。 https://maimai.cn/article/detail?fid=1764399719&efid=_j-QXBJavdD7VaW8tz9szg
16.谷歌T4FBE4亚麻L5对应BAT的什么工程师等级?这里分享一下我提升算法与数据结构的学习资料(北美国内都适用) 《FLAG算法面试真题详解》:直接刷题是最快提升算法能力的方式之一,像谷歌考察最多的动态规划,二叉树,数组和字符串的处理等知识点,都能在这里得到解答。 算法常考知识点 二分搜索BinarySearch https://www.yoojia.com/ask/17-12024161409420320359.html
17.Python机器学习入门(六)之Python优化模型python有时提升一个模型的准确度很困难。你会尝试所有曾学习过的策略和算法,但模型正确率并没有改善。这时你会觉得无助和困顿,这也正是90%的数据科学家开始放弃的时候。不过,这才是考验真正本领的时候!这也是普通的数据科学家和大师级数据科学家的差距所在。 https://www.jb51.net/article/220993.htm