asp.net 网站开发实例,中卫展览展厅设计公司,做网站平台公司,浦东新区网站推广公司摘要#xff1a; 本文讲述集成学习中的梯度提升方法的思想#xff0c;以简单算术及图片的形式展示整个过程#xff0c;一看就懂#xff01;
简介 机器学习#xff08;ML#xff09;中的一个关键步骤是选择适合数据的最佳算法#xff0c;根据数据中的一些统计数据和可视…摘要 本文讲述集成学习中的梯度提升方法的思想以简单算术及图片的形式展示整个过程一看就懂
简介 机器学习ML中的一个关键步骤是选择适合数据的最佳算法根据数据中的一些统计数据和可视化信息机器学习工程师将选择最佳算法。假设数据如下图所示现在将其应用于回归示例 对数据进行可视化如下图示所示似乎线性回归模型对其比较合适 将根据线性等式制定仅具有一个输入x和一个输出y的回归模型 yaxbyaxb
其中a和b是上述等式的两个参数。 由于我们不知道适合数据的最佳参数因此可以从初始化取值开始。可以将a设置为1.0将b设置为0.0并可视化等式如下图所示 从图中可以看到似乎该模型不能基于参数初始化取值来拟合数据。 很明显不可能第一次试验初始化就能取得很好的结果。但问题是如何在这种情况下提高性能换句话说如何最大化分类准确度或最小化回归误差下面有不同的方法。其中一种简单的方法就是尝试更改先前选择的参数。经过多次试验模型将知道最佳参数是a 2和b 1该模型适合这种情况下的数据如下图所示可以看见拟合得非常好 但是在某些情况下更改模型参数并不会使得模型很好地拟合数据仍然会有一些错误的预测。假设数据有一个新点(x 2, y 2)。从下图可以看出不可能找到使模型完全适合每个数据点的参数不适用于线性拟合。 有人可能会说该模型能够拟合四个点而缺少一个点这是可以接受的。但是如果有更多的点如下图所示呢在这种情况下该模型将做出更多的错误预测。没有一条直线可以拟合整个数据。该模型只对线上点的预测很强但对其他点则较弱。 集成学习|Ensemble Learning 由于单个回归模型不适合整个数据因此另一种解决方案是使用多个回归模型。每个回归模型都能够强有力地适应部分数据将所有模型组合起来将减少整个数据的总误差并产生一个通用的强大模型。在问题中使用多个模型的这种方法称为集合学习。使用多个模型的重要性如下图所示。图中显示了在预测样本结果时的误差很大。从图b中可以看到当存在多个模型例如三个模型时其结果的平均值将能够比以前做出更准确的预测。 当应用于图7中的先前问题时拟合数据的4个回归模型的集合在图9中已经表示出 这就带了了另外的一个问题如果有多个模型可以拟合数据那么如何获得单个数据的预测有两种方法可以组合多个回归模型来返回单个结果。它们是bagging和boosting本文重点内容。 在bagging中每个模型将返回其结果并对所有模型的输出结果进行综合进而返回最终结果。一种综合方法是将所有模型的输出结果进行平均bagging是平行工作的因为所有模型都在同时工作。 相反boosting被认为是顺序处理的因为一个模型的输出结果是下一个模型的输入。boosting的想法是使用弱学习器来拟合数据。由于模型很弱所以无法正确拟合数据这种学习器的弱点将由另一个弱学习器来解决。如果仍然存在一些弱点那么将使用另一个弱学习器来修复它们直到最终从多个弱学习器中产生了强大的学习器。接下来将解释梯度增强的工作原理。
梯度提升|Gradient Boosting 以下是基于一个简单示例梯度提升的工作原理 假设要构建一个回归模型并且数据具有单个输出其中第一个样本的输出为15如下图所示。最终目标是建立能够正确预测这种输出的回归模型。 第一个弱模型预测第一个样本的输出为9而不是15如下图所示 为了衡量预测的损失量对其计算残差剩余量是期望和预测输出之间的差异。计算等式如下 期望−预测1残差1期望−预测1残差1 其中预测和残差1分别是第一个弱模型的预测输出和残差。 因此上述例子的残差将为为 15−9615−96 由于预测输出和期望输出之间存在残差值为6的差距因此可以创建第二个弱模型其目标是预测输出等于第一模型的残差。所以第二个模型将解决第一个模型的弱点。根据下面这个等式两个模型的输出总和将等于期望输出 期望输出预测1预测2残差1期望输出预测1预测2残差1 如果第二个弱模型能够正确地预测残差1则期望输出将等于所有弱模型的预测如下所示 期望输出预测1预测2残差19615期望输出预测1预测2残差19615 但是如果第二个弱模型未能正确预测残差1的值而仅返回的值为3那么第二个弱学习器也将具有如下的残差 残差2预测1−预测26−33残差2预测1−预测26−33
如下图所示 为了解决第二个弱模型的弱点将创建第三个弱模型。其目标是预测第二弱模型的残差。因此它的目标输出值为3。所以样本的期望输出将等于所有弱模型的预测如下所示 期望输出预测1预测2残差1预测3残差2期望输出预测1预测2残差1预测3残差2 如果第三弱模型预测是2不等于3即它不能预测出第二个弱模型的残差那么对于这样的第三个弱模型将存在残差 残留3预测2−预测33−21残留3预测2−预测33−21
如下图所示 因此将创建第四个弱模型来预测第三个弱模型的残差其值等于1。期望输出将等于所有弱模型的预测如下所示 期望输出预测1预测2残差1预测3残差2预测4残差3期望输出预测1预测2残差1预测3残差2预测4残差3 如果第四个弱模型正确地预测其目标即残差值3则总共使用四个弱模型即可达到15的期望输出如下图所示。 这就是梯度增强算法的核心思想使用先前模型的残差作为下一个模型的目标有点类似于递归算法满足终止条件即退出递归。 梯度提升总结 总而言之梯度提升始于弱模型预测这种弱模型的目标是使其预测值与问题的理想输出一致。在模型训练之后计算其残差。如果残差不等于零则创建另一个弱模型以修复前一个的弱点。但是这种新模型的目标并不是获得期望输出而是先前模型的残差。也就是说如果给定样本的期望输出是T则第一模型的目标是T。在训练之后对于这样的样本可能存在R的残差所以要创建一个的新模型并将其目标设置为R而不是T新模型填补以前模型的空白。 梯度增强类似于多个力量弱的人抬一个重物上楼梯。没有一个力量弱的人能够抬着重物走完真个楼梯每个人只能抬着走一步。第一个人将重物提升一步并在此之后变得疲惫无法继续另一个人继续抬起重物并向前走另一步依此类推直到走完所有楼梯重物到达指定位置。
原文链接 本文为云栖社区原创内容未经允许不得转载。