GBM算法在预测上的应用(R语言)

本文探讨了Gradient Boosting算法的工作原理及其在预测中的应用,通过R语言实现示例,同时对比了Bagging和Boosting的区别,并讨论了算法可能导致的过拟合问题。
摘要由CSDN通过智能技术生成
提高预测模型的准确性(accuracy)有两个方法:一个是通过特征工程,一个是直接应用boosting算法。

目前有很多boosting算法:Gradient Boosting、XGBoost、AdaBoost、Gentle Boost等。每一个算法都有自己潜在的数学原理,它们在应用的时候会有些微的变化。

本文会解释Gradient Boosting算法的复杂性以及潜在的含义,也会通过R语言分享其实践栗子。

  1. Bagging 和Boosting的区别
    参考https://www.cnblogs.com/liuwu265/p/4690486.html

  2. 栗子
    假设需要改进一个模型M,且目前的准确率为accuracy=80%,应该如何做?
    一个简单的方法是使用新的输入变量集合来构建一个完全不同的模型,相反,有一个更简单的建议:

    Y = M(x) + error

    如果知道误差error不是白噪声,且与结果值Y有相同的相关性。如果能够在误差项上建立一个模型呢?比如:

    error = G(X) +error2

    也许,你会发现错误率会提高到更高的数字,比如说84%。让我们再走一步,回到error2.

    error2 = H(X) + error3

    合并所有公式:

    Y= M(X) + G(X) + H(X) + error3

    这可能会有超过84%的准确率,如果能为三个学习器找到最有的权重。

    Y = alpha * M(x) + beta * G(x) + gamma * H(x) + error4

    如果找到了合适的权重,可能已经模拟好了一个更好的模型。这是提升学习器的基本原理。当我第一次读到这个理论的时候,我有两个简单的问题:

    1. 在回归/分类方程中,真的能找到非白噪声误差?如果不能,我们如何使用这个算法呢?
    2. 如果这是可能的,为什么不能得到接近100%的准确率呢?

本文将会回答这个问题,然而,Boosting通常都是基于弱学习器,这不太可能没有白噪声。另一方面,Boosting会导致过拟合,因为我们需要在合适的时候停下来。

我们来设想一个分类问题:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值