前言

在《统计学习方法》这本书中介绍了基于分类问题的AdaBoost方法,其中更新样本权重采用的是XGboost回归模型 ARIMA预测 adaboost做回归_AdaBoost,其实当时就思考这样一个问题:如果用于回归任务,那么这个更新样本权重该如何计算?本文基于此问题展开讨论。

AdaBoost 回归算法

我们都知道回归预测得到的结果是数值,比如 房子价格,每一个房产样本都有一个房产价格,这个价格是一个数值,不同的房产价格可能是不一样的,且价格繁多,不像分类问题,类别较固定,所以使用AdaBoost算法做回归问题时不能单单的用分类问题的AdaBoost 算法,其重点在于如何更新样本权重及分类器权重,参考资料有如下一种思路:

  • 首先聊聊误差率问题,对于第m个若学习器,计算它在训练集上的最大误差:
    XGboost回归模型 ARIMA预测 adaboost做回归_回归问题_02
    为什么不取全体样本误差总值?
  • 计算每个样本的相对误差:
    XGboost回归模型 ARIMA预测 adaboost做回归_AdaBoost_03
    也可以用平方误差:
    XGboost回归模型 ARIMA预测 adaboost做回归_回归问题_04
  • 得到最终得到第m个弱分类器的误差率:
    XGboost回归模型 ARIMA预测 adaboost做回归_权重_05
  • 由此得到弱学习器权重系数:
    XGboost回归模型 ARIMA预测 adaboost做回归_XGboost回归模型 ARIMA预测_06

这里有一个问题,XGboost回归模型 ARIMA预测 adaboost做回归_回归问题_07一定小于1嘛。

  • 样本权重更新公式为:
    XGboost回归模型 ARIMA预测 adaboost做回归_XGboost回归模型 ARIMA预测_08
    其中XGboost回归模型 ARIMA预测 adaboost做回归_AdaBoost_09是一个规范化因子:
    XGboost回归模型 ARIMA预测 adaboost做回归_回归问题_10
    这有点像样本误差除以所有误差,计算当个样本误差占比,这个用来作为样本权重。
  • 最后是结合策略,和分类问题稍有不同,采用的是对加权的弱学习器取中位数的方法,最终的强回归器为:
    XGboost回归模型 ARIMA预测 adaboost做回归_参考资料_11
    其中,XGboost回归模型 ARIMA预测 adaboost做回归_回归问题_12是所有XGboost回归模型 ARIMA预测 adaboost做回归_参考资料_13的中位数,这样分析,那么在上述公式中对于XGboost回归模型 ARIMA预测 adaboost做回归_权重_14的不同取值XGboost回归模型 ARIMA预测 adaboost做回归_回归问题_12都是相同的分类器,只不多是前面的权重不同而已。感觉取中位数的依据是什么呢?取中位数的时候分类器是不是先排序?难道是按照训练分类器的先后顺序?其他分类器的权重相加也有点看不懂依据?继续参考其他博客
  • 当然有些博客采用分类问题的加权平均法:
    XGboost回归模型 ARIMA预测 adaboost做回归_权重_16
    加权平均法比较好理解,这里你也可以定义自己的组合策略

参考博客

adaboost做回归预测的时候,是怎么调整样本权重的?机器学习校招笔记3:集成学习之Adaboost