在AdaBoost算法中每个样本会被赋予一个权重,然后依次训练多个分类器,每训练完一个分类器都会根据当前分类器的结果对每个样本被选中的概率进行更新并得到当前分类器的权重参数,如果某个样本被算错则增加此样本被选中的概率,反之则降低概率;最后根据更新后的样本权重重新选择N个样本去训练下一个分类器;预测时,将每个分类器的结果加权得到预测的结果
AdaBoost算法训练过程:
- 将正样本标签置为1,负样本标签置为-1
- 初始化样本被选中的概率(均匀分布,每个样本被选中的概率为1/n)
- 根据样本权重选取N个样本训练一个分类器
- 根据当前分类器的结果计算当前分类器在分类结果中的权重,同时更新样本被选中的权重(若样本被错分则增加样本被选中的概率)
- 根据更新后的样本权重重新选择N个样本,并训练下一个分类器
- 迭代执行步骤3、4直至算法收敛
其中:
第k个分类器在分类结果中的权重为:
上式中表示第k个分类器的错误率;
每个样本权重系数的更新公式为:
其中,是当前所有样本权重的和,除以
目的是让所有样本权重和为1
使用Adaboost进行分类时,算法会根据每个分类器的权重将每个分类器的分类结果加权得到最终的分类结果,公式如下图所示:
Adaboost 解决回归问题
上述过程用于解决分类问题,使用Adaboost解决回归问题需要在几个地方进行修改
首先是第K个决策树对第i个样本的相对误差,对于回归问题样本的相对误差,可以通过线性误差、平方误差或指数误差三种形式得到,公式如下:
其中,表示k个决策树在所有样本的最大误差,除以
类似softmax的操作,可以将所有样本的误差映射到0~1;根据每个样本的误差,我们可以得到第k个决策树在所有样本上的总误差
:
由每个决策树的总误差,我们可以得到每个决策树的权重参数
:
每个样本的权重参数:
为规范化因子,除以
后可以令所有样本权重之和为1
最后是结合策略,和分类问题中的加法集成策略不同,回归问题采用的是对弱学习器的权重排序,然后取权重中位数对应的弱分类器作为整个分类器的强分类器输出结果
其中是所有决策树的权值中位数对应的决策树

607

被折叠的 条评论
为什么被折叠?



