统计学习方法笔记 -- Boosting方法
AdaBoost算法
基本思想是,对于一个复杂的问题,单独用一个分类算法判断比较困难,那么我们就用一组分类器来进行综合判断,得到结果,“三个臭皮匠顶一个诸葛亮”
专业的说法,
强可学习(strongly learnable),存在一个多项式算法可以学习,并且准确率很高
弱可学习(weakly learnable),存在一个多项式算法可以学习,但准确率略高于随机猜测
并且可以证明强可学习和弱可学习是等价的
那么发现一个弱可学习算法是很容易的,如果将弱可学习算法boosting到强可学习算法?
AdaBoost就是这样的算法,通过反复学习,得到一组弱分类器,通过组合这些弱分类器得到强分类器
问题就是如果得到一组弱分类器?
当然你可以用不同的分类算法来训练
也可以用不同的训练集,比如bagging,对训练集进行m次随机抽样,得到m个新的训练集
AdaBoost采用的方法是,用相同的算法和训练集,但改变每个训练样本的weight,因为在求解分类器时的目标函数是,加权误差最小,所以不同的权值会得到不同的分类器参数
具体的规则,是每轮分类后, 增大分错的样本的权值,减小分对样本的权值,所有样本权值和为1
这样下一轮分类器求解,就会更关注上一轮分错的这样样本点,达到分而治之的目的
需要注意,可以想到,这个算法对离群值比较敏感,容易overfitting
并且每个弱分类器也有个weight,代表该分类器的误差率,最终用加权多数表决的方式来得到最终结果
具体算法,
对于
训练集
1. 初始化训练样本的权值,平均分布,每个样本的概率相同

2. 反复迭代学习得到m个弱分类器,对于第m个弱分类器,
2.1 对于训练集,以加权误差最小为目标,求出分类器,Gm

2.2 算出,该弱分类器的加权误差

2.3 算出该弱分类器的权值,log函数,可见误差越小,权值越高,即在最终强分类器中的作用越大

2.4 关键的一步,更新训练样本的权值


其中,第一个式子其实是,

指数分布,小于0,取值在(0,1),大于0,取值大于1
所以意思就是,当Gm(x)=y的时候,即判断正确的样本,减小权值
判断错误的样本,增加权值
之所以要除以Zm,是因为所有权值的和要为1,用Zm来进行规范化
3. 上面我们就得到m个弱分类器,如何组合出强分类器,


很简单的,加权多数表决
其中sign函数,取值-1(x<0),0,1(x>0)
统计学习方法笔记 -- Boosting方法的更多相关文章
- 统计学习方法笔记 -- KNN
K近邻法(K-nearest neighbor,k-NN),这里只讨论基于knn的分类问题,1968年由Cover和Hart提出,属于判别模型 K近邻法不具有显式的学习过程,算法比较简单,每次分类都是 ...
- 统计学习方法笔记--EM算法--三硬币例子补充
本文,意在说明<统计学习方法>第九章EM算法的三硬币例子,公式(9.5-9.6如何而来) 下面是(公式9.5-9.8)的说明, 本人水平有限,怀着分享学习的态度发表此文,欢迎大家批评,交流 ...
- 统计学习方法笔记 Logistic regression
logistic distribution 设X是连续随机变量,X服从逻辑斯谛分布是指X具有下列分布函数和密度函数: 式中,μ为位置参数,γ>0为形状参数. 密度函数是脉冲函数 分布函数是一条S ...
- 统计学习方法笔记(KNN)
k近邻法(k-nearest neighbor,k-NN) 输入:实例的特征向量,对应于特征空间的点:输出:实例的类别,可以取多类. 分类时,根据其k个最近邻的训练实例的类别,通过多数表决等方式进行预 ...
- 李航-统计学习方法-笔记-3:KNN
KNN算法 基本模型:给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的k个实例.这k个实例的多数属于某个类,就把输入实例分为这个类. KNN没有显式的学习过程. KNN使用的模型 ...
- 《统计学习方法》笔记三 k近邻法
本系列笔记内容参考来源为李航<统计学习方法> k近邻是一种基本分类与回归方法,书中只讨论分类情况.输入为实例的特征向量,输出为实例的类别.k值的选择.距离度量及分类决策规则是k近邻法的三个 ...
- 《统计学习方法》极简笔记P4:朴素贝叶斯公式推导
<统计学习方法>极简笔记P4:朴素贝叶斯公式推导 朴素贝叶斯基本方法 通过训练数据集 T={(x_1,y_1),(x_2,y_2),(x_N,y_N)...,(x_1,y_1)} 学习联合 ...
- 《统计学习方法》笔记九 EM算法及其推广
本系列笔记内容参考来源为李航<统计学习方法> EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计或极大后验概率估计.迭代由 (1)E步:求期望 (2)M步:求极大 组成,称 ...
- 《统计学习方法》极简笔记P5:决策树公式推导
<统计学习方法>极简笔记P2:感知机数学推导 <统计学习方法>极简笔记P3:k-NN数学推导 <统计学习方法>极简笔记P4:朴素贝叶斯公式推导
随机推荐
- /dev/tty /dev/ttyS0 /dev/tty0区别 (转载)
1.串行端口终端(/dev/ttySn) 串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备. 计算机把每个串行端口都看作是一个字符设备.有段时间 ...
- C++ Primer与c++编程思想的比较(转)
C++primer是最经典的c++教材之一,它的经典程度要超过thinking in c++.连thinking in c++作者本人都说他写这本书在某种程度上是让读者更好的理解C++primer.但 ...
- codevs 2924 数独
数独挑战 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codevs.cn/problem/2924/ Description “芬兰数学家因 ...
- http://my.oschina.net/chinacion/blog/647641
http://my.oschina.net/chinacion/blog/647641
- MP3/视频播放
简单的视频.MP3播放 <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equ ...
- ural 1245. Pictures
1245. Pictures Time limit: 1.0 secondMemory limit: 64 MB Artist Ivanov (not the famous Ivanov who pa ...
- codeforces round #201 Div2 A. Difference Row
#include <iostream> #include <vector> #include <algorithm> using namespace std; in ...
- CentoS 下报的 Requires: perl(:MODULE_COMPAT_5.8.8)
yum error requires: libtcmalloc.so.4 rpm -Uvh http://ceph.com/rpm-cuttlefish/el6/x86_64/ceph-release ...
- C++ Split string into vector<string> by space
在C++中,我们有时候需要拆分字符串,比如字符串string str = "dog cat cat dog"想以空格区分拆成四个单词,Java中实在太方便了,直接String[] ...
- 微课程--Android--Activity组建与Intent
安卓的四大基本组件 Activity是经常使用的组件 1 展示用户界面 2 响应用户操作 Service 1 在后台长时间运行 2 没有用户界面 ContentProvider 1 管理和共享应用数据 ...