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

  统计/机器学习 回归分析 监督式学习    浏览次数: 228
0

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

 

PyGeek   2018-10-07 13:31



   1个回答 
3

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面经 问答 实战

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



  相关主题

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

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

GBDT+LR的工作原理?   4回答

如果支持向量机做回归任务,支持向量是什么?   1回答

线性回归的bagging   2回答

逻辑回归的前提假设是什么?   1回答

python中可以做beta regression的包?   1回答

线性回归需要满足哪些基本前提假设   1回答

最小二乘线性回归的推导   2回答

在线性回归模型中存在epoch的说法吗?   2回答

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

泊松回归的公式是什么?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!