adaboost做回归预测的时候,是怎么调整样本权重的?

  统计/机器学习 回归分析 监督式学习    浏览次数:12963        分享
1

adaboost做分类的时候,分错的点会在下一轮获得更大的权重。那么用adaboost做回归的时候,这个权重是怎么来的?因为回归并不存在分对分错的情况。

 

PyGeek   2018-10-07 13:31



   1个回答 
6

Adaboost做回归时误差率、权重系数如何选择:

先看看回归问题的误差率的问题,对于第$m$个弱学习器,计算他在训练集上的最大误差:

$$E_m=max\left | y_i-G_m(x_i) \right |\quad i=1,2,...,N$$

然后计算每个样本的相对误差:

$$e_{mi}=\frac{\left | y_i-G_m(x_i) \right |}{E_m}$$

这里是误差损失为线性时的情况,如果我们用平方误差,则

$$e_{mi}=\frac{\left ( y_i-G_m(x_i) \right )^2}{E_m^2}$$

最终得到第$m$个弱学习器的误差率:

$$e_m=\sum_{i=1}^Nw_{mi}e_{mi}$$

我们再来看看如何得到弱学习器权重系数 \alpha 。这里有:

$$\alpha_m=\frac{e_m}{1-e_m}$$

对于更新更新样本权重$D$,第$m+1$个弱学习器的样本集权重系数为:

$$w_{m+1,i}=\frac{w_{mi}}{Z_m}\alpha_m^{1-e_{mi}}$$

这里$Z_m$是规范化因子:

$$Z_m=\sum_{i=1}^{N}w_{mi}\alpha_m^{1-e_{mi}}$$

最后是结合策略,和分类问题稍有不同,采用的是对加权的弱学习器取中位数的方法,最终的强回归器为:

$$f(x)=\sum_{i=1}^{N}(ln\frac{1}{\alpha_m})g(x)$$

其中,$g(x)$是所有$\alpha_m G_m(x),m=1,2,....M$的中位数。


-------------------------------------------------

AdaBoost回归算法总结起来就是:

输入:训练数据集$T = \left\{ \left( x_{1}, y_{1} \right), \left( x_{2}, y_{2} \right), \cdots, \left( x_{N}, y_{N} \right) \right\}$,其中$x_{i} \in \mathcal{X} \subseteq R^{n}, y_{i} \in \mathcal{Y} = \left\{ +1, -1 \right\}, i = 1, 2, \cdots, N$

输出:回归器$G\left(x\right)$

1. 初始化训练数据的权值分布

$$D_{1}=\left(w_{11},w_{12},\cdots,w_{1N}\right), \quad w_{1i} = \dfrac{1}{N}, \quad i=1,2,\cdots,N$$

2. 对$m=1,2,\cdots,M$

    2.1 使用具有权值分布$D_{m}$的训练数据集学习,得到基本分类器$G_{m}\left(x\right)$

    2.2 计算训练集上的最大误差

$$E_m=max\left | y_i-G_m(x_i) \right |\quad i=1,2,...,N$$

    2.3 计算每个样本的相对误差(如果采用平方误差):

$$e_{mi}=\frac{\left ( y_i-G_m(x_i) \right )^2}{E_m^2}$$

    2.4 计算回归误差率:

$$e_m=\sum_{i=1}^Nw_{mi}e_{mi}$$

    2.5 计算弱学习器的系数

$$\alpha_m=\frac{e_m}{1-e_m}$$

    2.6 更新样本集的权重分布为

$$w_{m+1,i}=\frac{w_{mi}}{Z_m}\alpha_m^{1-e_{mi}}$$

    其中, $Z_{m}$是规范化因子

$$Z_k=\sum_{i=1}^{N}w_{ki}\alpha_k^{1-e_{ki}}$$

3. 构建基本分类器的线性组合

$$f(x)=\sum_{m=1}^{M}(ln\frac{1}{\alpha_m})g(x)$$

其中,$g(x)$是所有$\alpha_mG_m(x),m=1,2,....M$的中位数。


参考来源:http://www.cnblogs.com/pinard/p/6133937.html

SofaSofa数据科学社区DS面试题库 DS面经

飞翔钉子   2018-10-09 10:58



  相关讨论

目标约束回归

线性回归的bagging

对于线性回归模型,如何做线上模型更新

可以对线性回归进行boosting吗?

逻辑回归最终的所有结果都是0的原因

文本或者语音里的数字识别是分类还是回归?

证明在线性回归中,如果样本数量N小于特征数量d+1,则XXT的秩最大为N?

python中可以做beta regression的包?

泊松回归的公式是什么?

怎么理解分位数回归quantile regression的目标函数?

  随便看看

两个独立的正态随机变量的乘积服从什么分布?

把pandas.DataFrame中所有行全部随机排列

推荐系统有哪些常用的评价标准

怎么在已有的dataframe中插入一个新列(Pandas)

推荐开放数据库