Adaboost分类器
Adaboost分类器
2019-08-31
非集成的机器学习算法就像古代皇帝一样,一个人说了算;集成学习算法类似于现在的国会,需要听取在会所有人的意见。
Adaboost是一个集成学习算法,下面将会对算法进行拆解,以使我们明白Adaboost的内部原理。
Adboost算法核心内容可以划分为两个问题:
(1)如何构建弱分类器;
(2)如何组合这些弱分类器。
其中(1)又可以细化为:
1)使用哪种模型作为弱分类器的主算法?SVM还是DecisionTree,又或者是LogisticRegression;
2)如何使用原始数据?全部使用还是随机抽取又或者是分批使用;
3)到底应该训练出多少个弱分类器?
解决完这些问题,整个Adaboost算法就非常清晰了。
1.构建弱分类器
1.1 弱分类器的主算法
这个由设计者自己选择,Adboost算法不强制规定选择那种算法作为弱分类器的主算法。
1.2 原始数据集的使用
Adaboost算法会使用全部的训练集来训练弱分类器,并不会进行类似于随机抽取或者分批的操作;但是Adaboost会给每个训练数据添加一个权重系数。
目前只需要直到Adboost算法使用全部的训练集训练模型,并为每个数据增加了一个权重系数这两点就可以了。
1.3 弱分类器的个数
这个Adaboost算法中也没有强制规定,开发人员可以自己规定弱分类器个数,或者自己设置停止迭代的条件。
1.4 弱分类器训练过程
假设总训练集为D,训练集的样本个数为N,最多训练M个弱分类器;
m代表正准备训练的分类器的编号;
$W_{i}$表示第i个弱分类器的权重列表,$W_{i,j}$代表第i个弱分类器的第j个数据的权值,i,j都从0开始计
在这些条件下,弱分类器的训练过程如下:
1)初始化权重系数W并初始化m=0;
$W_{0,j} = \frac{1}{N}\, \, \, \, \, \, \, \, \, j\in [0,1,2\cdots N-1]$
2)若m大于M-1,停止弱分类器训练,准备组合弱分类器;
3)否则使用带权重的训练数据训练弱分类器,得到弱分类器$G_{m}(x)$;
4)计算弱分类器$G_{m}(x)$在训练集上的错误率:
$\widehat{y}_{m}=G_{m}(x)$
$\varepsilon _{m}=W_{m}\cdot (\widehat{y}_{m}\neq y)$
5)计算相关系数:
$\alpha_{m}=0.5log\frac{1-\varepsilon _{m}}{\varepsilon _{m}}$
6)更新权重:
$W_{m+1}=W_{m}\times exp(-\alpha_{m}\times \widehat{y}\times y)$
归一化权重
$W_{m+1}=W_{m+1}/(\sum W_{m+1,j}\,\,)$
7)令$m = m+1$,查是否达到迭代终止条件,否的话跳到第2)步继续;
8)达到条件的话终止迭代,准备组合弱分类器。
2.组合弱分类器
这个时候上一节中求的相关系数就用上了,最终的强分类器$F(x)$:
$F(x)=\sum_{i=0}^{M-1}\alpha_{i}G_{i}(X)$
当$F(x)>0$,预测为正
Adaboost分类器的更多相关文章
- 使用OpenCV训练Haar like+Adaboost分类器的常见问题
<FAQ:OpenCV Haartraining>——使用OpenCV训练Haar like+Adaboost分类器的常见问题 最近使用OpenCV训练Haar like+Adaboost ...
- OpenCV学习记录(二):自己训练haar特征的adaboost分类器进行人脸识别 标签: 脸部识别opencv 2017-07-03 21:38 26人阅读
上一篇文章中介绍了如何使用OpenCV自带的haar分类器进行人脸识别(点我打开). 这次我试着自己去训练一个haar分类器,前后花了两天,最后总算是训练完了.不过效果并不是特别理想,由于我是在自己的 ...
- 6-8 adaboost分类器2
重点分析了Adaboost它的分类结构,以及如何使用Adaboost.这一节课讲解Adaboost分类器它训练的步骤以及训练好之后的XML文件的文件结构.所以这节课的核心是Adaboost分类器它的训 ...
- 6-7 adaboost分类器1
如何利用特征来区分目标,进行阈值判决.adaboost分类器它的优点在于前一个基本分类器分出的样本,在下一个分类器中会得到加强.加强后全体的样本那么再次进行整个训练.加强后的全体样本再次被用来训练下一 ...
- 关于adaboost分类器
我花了将近一周的时间,才算搞懂了adaboost的原理.这根骨头终究还是被我啃下来了. Adaboost是boosting系的解决方案,类似的是bagging系,bagging系是另外一个话题,还没有 ...
- 使用 AdaBoost 元算法提高分类器性能
前言 有人认为 AdaBoost 是最好的监督学习的方式. 某种程度上因为它是元算法,也就是说它会是几种分类器的组合.这就好比对于一个问题能够咨询多个 "专家" 的意见了. 组合的 ...
- 第九篇:使用 AdaBoost 元算法提高分类器性能
前言 有人认为 AdaBoost 是最好的监督学习的方式. 某种程度上因为它是元算法,也就是说它会是几种分类器的组合.这就好比对于一个问题能够咨询多个 "专家" 的意见了. 组合的 ...
- 机器学习实战 - 读书笔记(07) - 利用AdaBoost元算法提高分类性能
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习笔记,这次是第7章 - 利用AdaBoost元算法提高分类性能. 核心思想 在使用某个特定的算法是, ...
- 【原】训练自己haar-like特征分类器并识别物体(2)
在上一篇文章中,我介绍了<训练自己的haar-like特征分类器并识别物体>的前两个步骤: 1.准备训练样本图片,包括正例及反例样本 2.生成样本描述文件 3.训练样本 4.目标识别 == ...
- Real Adaboost总结
Real Adaboost分类器是对经典Adaboost分类器的扩展和提升,经典Adaboost分类器的每个弱分类器仅输出{1,0}或{+1,-1},分类能力较弱,Real Adaboost的每个弱分 ...
随机推荐
- 解决ubuntu18环境matplotlib无法正常显示中文
首先看看系统装了中文字体没?命令: fc-list :lang=zh 如果没安装,需要去下载或者从win复制一份到ubuntu, 在/usr/share/fonts文件夹下创建一个chinese文件夹 ...
- Jmeter性能测试入门到项目实战03
Jmeter性能测试入门到项目实战03 P35 项目业务介绍 1,之前已经对Jmeter所有的知识点做了一个介绍,主要的业务模式是币币交易,就像b2c 2, 3, 4,主要是把登陆和交易这一块做一个并 ...
- ABC136 E - Max GCD 题解
题面 给定一个长度为 $N$ 的整数序列:$A_1, A_2, \ldots, A_n$. 您可以执行以下操作 $0 \sim K$ 次: 选择两个整数 $i$ 和 $j$,满足 $i \ne j$ ...
- Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist:...
大家都知道Centos8于2021年年底停止了服务,大家再在使用yum源安装时候,出现下面错误"错误:Failed to download metadata for repo 'AppStr ...
- ValueError: Unable to determine SOCKS version from socks
unset all_proxy && unset ALL_PROXY export all_proxy="socks5://127.0.0.1:1080" 参考: ...
- 创建SFTP用户并指定访问目录 Linux
1.创建登录用户及用户组 --可以根据自身磁盘挂载情况制定用户home目录 -d 选项 groupadd test1mkdir -p /data/test1 useradd test1 -g te ...
- CF446D 题解
题意 传送门 给定一张 \(n\) 个点 \(m\) 条边的无向图,每个节点有权值 \(v_i=\) \(0/1\).角色从节点 \(1\) 开始随机游走,走到 \(n\) 停止.求其经过路径上权值和 ...
- H5分享功能--带图标、说明
代码实现 index.vue <template> <div id="app"> <SelfSharePage v-if="share_da ...
- selenium浏览器参数设置详解——转
所有参数 https://peter.sh/experiments/chromium-command-line-switches/ 参数使用介绍 https://blog.csdn.net/XianZ ...
- 苹果Macbook快捷键使用大全
苹果电脑Macbook快捷键如何使用?很多小伙伴经常询问小编有关于苹果电脑的相关问题,其实很多快捷键都可以提高生产力,那么接下来一起看看苹果Macbook快捷键使用大全! 苹果电脑Macbook快捷键 ...