机器学习-决策树系列-Adaboost算法-集成学习-29

发布时间 2024-01-05 22:00:42作者: jack-chen666

1. adaboost算法的基本思想

集成学习是将多个弱模型集成在一起 变成一个强模型 提高模型的准确率,一般有如下两种:
bagging: 不同的base model可以并行计算,输出预测结果少数服从多数,回归问题则对多个模型输出的结果求平均。
boosting:后一个模型的训练需要依赖前一个模型,所以模型的训练会特备耗时没法并行,Adaboost、GBDT、Xgboost主要有这三种。

对样本赋予权重,迭代的方式构造弱分类器,后一个分类器依赖前一个分类器 。
多个弱分类器的线性组合得到最终的强分类器。

例如:



对于前一个分类器分错的样本,后一个分类器会格外的注重,训练的时候增加该样本的权重,以便这次训练的时候要分对,训练模型的同时 计算出本次的弱模型输出结果的权重

算法的核心:通过调整输入数据的权重,让本来还不错的分类器的权重正确率达到1/2

什么是权重正确率?
数据预测的错误率 =(错误数据的个数)/(全部数据的个数)
数据预测的权重错误率 =(预测错误数据的权重和)/(全部数据的权重和)
举例:
有一个标签集实际是{+1,+1,+1,+1,-1}
训练出一个g1(x)的分类结果{+1,+1,+1,+1,+1}
最后一个分出错了,如果这5条样本的权重是一样的 错误率=1/5
如果最后那个样本的权重是1/2 其余的是1/8 那么权重错误率是多少? 1/2
1/2 / 1/2+1/8+1/8+1/8+1/8
也就是说做错的那道题分数分其他的题是不一样的 越难的题分数越高

2. 具体实现

通过权重不同来训练弱分类器模型gt(x),那么我们每次找到g(x)都应该使当前时刻权重正确率最大。


调整t+1次训练的样本的权重 使得: 正确率(带权重的) 等于 错误率(带权重)

如何调整?引入缩放因子

t+1 样本权重的计算:

Δt 一般是一个大于1的数
对于分类正确的样本 权重除以Δt
对于分类错误的样本 权重乘以Δt
本次的弱模型输出权重:
也就是:α=ln(Δt)


U1 到 U2 是如何计算的

过程: