虽然最初不是这样构思的,但标准的 Adaboost 算法等效于使用指数损失函数进行前向阶段加性模型估计。也就是说,给定一些弱分类器c1,...,cM和样本点x1,...,xN来自算法的权重:
- 设置 F_0(x) = 0
- 对于m = 1 到M:设置 (w_m, f_m) = arg min over (w, c_i) of (Loss function(y_i, F_m-1(x_i) + w * c_i(x_i)) 应用于所有 x_i)
- 设置 F_m(x) = F_m-1(x) + w_m * f_m(x)
强分类器是输出 F_M(x)。使这个强学习器与 Adaboost 输出相同的损失函数是
L(y,f(x)) = exp(-y*f(x))
对于在 {-1,1} 中取值的分类器。Hastie, Tibshirani, Friedman, Elements of Statistical Learning , Section 10.4中解释了这一切。
我的问题与前向逐步回归有关。这是一个贪心算法,一旦估计 w_i,它就被固定,然后找到权重 w_i+1,等等。这似乎真的是为处理“独立”弱分类器而设计的,如树桩分类器或树分类器仅限于互斥的独立变量(特征),因此拟合分类器后的残差不再由该分类器解释。
换句话说,要将一组函数拟合到给定的目标函数,我不会拟合第一个,固定该系数,然后找到第二个的最佳系数,保持第一个常数,等等......除非我知道功能是独立的。但这或多或少是算法所做的。
与(根据我的经验)具有更全面分类器(如 SVM 或线性模型)的 Adaboost 相比,这是否解释了 Adaboost 与树桩学习器或决策树的成功?有人可以提供参考吗?- 我没有在文献中看到这方面的讨论。谢谢。