AdaBoost算法
来源:互联网 发布:ubuntu efi系统分区 编辑:程序博客网 时间:2024/06/06 16:25
在学习AdaBoost算法之前,要明确两个概念:强学习和弱学习。所谓强学习,就是指一个分类器经过学习后能够直接根据特征进行分类,并且正确率很高,比如SVM;而弱学习则是经过学习后其分类的正确率只比随机猜测略好一点点。
显然,从直观的感觉上我们更倾向于寻找强学习的分类器,但实际上,很多场合这种分类器往往很难构造出来,而弱分类器则容易得多。这时,我们将若干个训练好的弱分类器‘联合’起来,使其近似于一个强分类器,这样就会形成‘三个臭皮匠顶个诸葛亮’的效果。这就是AdaBoost算法的核心思想。
那么这里就有两个问题需要考虑,一个是如何通过数据学习;另一个则是如何将这些弱分类器组合起来。
对于第一个问题,AdaBoost 采取的策略是,在每一轮学习中,加大错分样本的权值,使其‘影响力’更大,降低正确分类样本的权值,使其‘影响力’减小。
对于第二个问题,AdaBoost采取的策略是,加大分类误差率小的弱分类器的权值,减小分类误差率大的弱分类器的权值,最后‘投票表决’分类结果。由于加大了分类误差率小的弱分类器的权值,这就相当于增加了其在‘投票’环节的‘话语权’;相应地,另一个则为减少‘话语权’。
AdaBoost算法:
假定二分类训练集:
这里
输入:训练数据集T;输出:最终分类器G(x)。
(1)初始化训练数据的权值分布:
(2)对
- 使用具有权值分布D_m的训练数据集学习,得到基本分类器
Gm(x):X→{−1,1} - 计算
Gm(x) 在训练集上的分类错误率:em=P(Gm(xi)≠yi)=ΣNi=1ωmiI(Gm(xi)≠yi) - 计算G_m(x)的系数
αm=12ln1−emem - 更新训练集的权值分布
Dm+1=(ωm+1,1,ωm+1,2,...,ωm+1,N) ωm+1,i=ωmiZmexp{−αmyiGm(xi)},i=1,2,...,N
其中,Zm 是规范化因子Zm=ΣNi=1ωmiexp{−αmyiGm(xi)}
它使得Dm+1 构成一个概率分布,即ΣNi=1ωm+1,i=1 。
(3)构建进本分类器的线性组合f(x)=ΣMm=1αmGm(x)
得到最终分类器G(x)=sign(f(x))
其中,sign(⋅) 为符号函数。
1 0
- adaboost算法
- AdaBoost算法
- AdaBoost 算法
- Adaboost算法
- adaboost算法
- adaboost算法
- AdaBoost算法
- Adaboost算法
- AdaBoost算法
- Adaboost 算法
- Adaboost算法
- Adaboost 算法
- adaBoost算法
- AdaBoost算法
- Adaboost 算法
- AdaBoost算法
- Adaboost 算法
- adaboost算法
- 链接命令
- mq 使用Spring发送,消费topic和queue消息
- Android事件分发
- 图像处理-RGB转灰度
- ViewConfiguration.getScaledTouchSlop();触发移动事件的最小距离
- AdaBoost算法
- 命令格式+ls
- C++string类常用函数
- Android Studio运行出现Unsupported method: AndroidProject.getPluginGeneration() while running project
- personal jottings (一)
- Unity 监听Project视图结构变化的事件
- mysql查看session信息
- 后缀数组详解
- Oracle存储过程