前言
在《统计学习方法》这本书中介绍了基于分类问题的AdaBoost方法,其中更新样本权重采用的是,其实当时就思考这样一个问题:如果用于回归任务,那么这个更新样本权重该如何计算?本文基于此问题展开讨论。
AdaBoost 回归算法
我们都知道回归预测得到的结果是数值,比如 房子价格,每一个房产样本都有一个房产价格,这个价格是一个数值,不同的房产价格可能是不一样的,且价格繁多,不像分类问题,类别较固定,所以使用AdaBoost算法做回归问题时不能单单的用分类问题的AdaBoost 算法,其重点在于如何更新样本权重及分类器权重,参考资料有如下一种思路:
- 首先聊聊误差率问题,对于第m个若学习器,计算它在训练集上的最大误差:
为什么不取全体样本误差总值? - 计算每个样本的相对误差:
也可以用平方误差: - 得到最终得到第m个弱分类器的误差率:
- 由此得到弱学习器权重系数:
这里有一个问题,一定小于1嘛。
- 样本权重更新公式为:
其中是一个规范化因子:
这有点像样本误差除以所有误差,计算当个样本误差占比,这个用来作为样本权重。 - 最后是结合策略,和分类问题稍有不同,采用的是对加权的弱学习器取中位数的方法,最终的强回归器为:
其中,是所有
的中位数,这样分析,那么在上述公式中对于
的不同取值
都是相同的分类器,只不多是前面的权重不同而已。感觉取中位数的依据是什么呢?取中位数的时候分类器是不是先排序?难道是按照训练分类器的先后顺序?其他分类器的权重相加也有点看不懂依据?继续参考其他博客
- 当然有些博客采用分类问题的加权平均法:
加权平均法比较好理解,这里你也可以定义自己的组合策略
参考博客
adaboost做回归预测的时候,是怎么调整样本权重的?机器学习校招笔记3:集成学习之Adaboost