1.AdaBoost及其回归
AdaBoost(特别是 AdaBoost.M1)(Freund & Schapire,1997)是最著名的分类提升方法之一,也是 ExpBoost 和 TrAdaBoost 所基于的方法。 在 AdaBoost 中,每个训练实例都会收到一个权重 wi,用于学习每个假设; 该权重表示每个实例的相对重要性,并用于计算数据集上的假设的误差。 每次迭代后,实例都会被重新加权,那些没有被最后一个假设正确分类的实例接收更大的权重(如算法 1 的第 5 步)。 因此,随着过程的继续,学习集中在那些最难分类的实例上。
AdaBoost 的关键是对那些在每次迭代中被错误分类的实例(样本)重新分配权重。 在回归问题中,由假设 (或者可以理解为模型?)ht 对实例 xi 给出的输出不正确或不准确,但有一个任意大的实值误差 ei = |yi - ht(xi)| 。 因此,我们需要一种将误差 ei 映射到调整后的误差 e ′ i 的方法,该方法可用于 AdaBoost 所使用的重新分配权重公式。
AdaBoost.R2 (Drucker, 1997) 中使用的方法是表示每个误差与最大误差的关系 D = maxn i=0|ei | 使得每个调整后的误差 e ’ i 在 [0, 1] 范围内。 特别是,使用了三种可能的损失函数之一:e′i = ei/D(线性)、e′i = ei2 /D2(平方)或 e′i = 1 - exp(-ei/D) ( 指数)。 因此,实例 xi 在迭代 t 中重新加权的程度取决于 ht 在 xi 上的误差相对于最坏实例上的误差有多大。
[另一方面,AdaBoost.RT (Shrestha & Solomatine, 2006) 继续使用错误阈值 φ 将每个输出标记为正确 (e ′ i = 0) 或不正确 (e ′ i = 1)。 也就是说,如果 ei > φ,那么 e ′ i = 1; 否则,e ′ i = 0。]
*AdaBoost.R2 (Drucker, 1997)*
Input 大小为n的标记目标数据集T,
最大迭代次数N,
以及一个基础学习算法Learner。
除非另有说明,否则设置初始权重向量 w1 使w1,i = 1/n ,其中1 ≤ i ≤ n
For t = 1, . . . , N:
1. 用训练集 T 和分布 wt 调用 Learner,得到一个假设 ht : X → R。
2. 计算每个实例的调整误差 et,i: 令 Dt = max|yj - ht(xj)| 那么 et,i = |yi-ht(xi)|/Dt
3. 计算 ht 的调整误差: εt = ∑et,i·wt,i 如果 εt ≥ 0.5,停止并设置 N=t-1
4. βt=εt/(1-εt)
5. 更新权重向量:
wt+1,i = wt,i·β^(1−et,i) /Zt (Zt 是归一化常数)
输出假设:
hf (x) = ht(x) 的加权中位数,其中1≤t≤N,ln(1/βt) 作为假设 ht 的权重。
这里最后有一个加权中位数,查了一些资料,可供参考
CSDN Weighted Median一个案例
Adaboost回归问题的算法流程
【今儿就先翻到这儿】