adaboost方法需要点云重采样方法吗

| 时间排序
&p&有本书 《Boosting Foundations and Algorithms》讨论的很详细,可以读一下&/p&
有本书 《Boosting Foundations and Algorithms》讨论的很详细,可以读一下
&p&下面回答来自周志华老师的《机器学习》&/p&&br&&img src=&/v2-3e89b03e272b29ab98310c11edce7db9_b.png& data-rawwidth=&562& data-rawheight=&348& class=&origin_image zh-lightbox-thumb& width=&562& data-original=&/v2-3e89b03e272b29ab98310c11edce7db9_r.png&&
下面回答来自周志华老师的《机器学习》
&p&其实 adaboost 这样的浅层模型,我觉得最主要特点是控制了实例的话语权;就算数据倾斜严重;实际上掌握话语权的实例也是较少的,这样数据不平衡因素对其影响就不大了;其实adaboost也是会过拟合的,只不过因为控制在边界所以并不那么明显罢了,其实adaboost受到影响大的还是特征过程做得是否能让数据产生明显的边界,毕竟boosting tree 都是按照split point 分隔,一个好的特征如果能越少次数的分割并且能覆盖更多的实例,那么这个特征就是个好的特征;这个是以上个人观点&/p&
其实 adaboost 这样的浅层模型,我觉得最主要特点是控制了实例的话语权;就算数据倾斜严重;实际上掌握话语权的实例也是较少的,这样数据不平衡因素对其影响就不大了;其实adaboost也是会过拟合的,只不过因为控制在边界所以并不那么明显罢了,其实adaboost…
&p&Adaboost据说是最早的实用的boosting algorithm?&/p&&br&&img src=&/v2-f53d05dc1c0ef5b896ab3_b.png& data-rawwidth=&1302& data-rawheight=&867& class=&origin_image zh-lightbox-thumb& width=&1302& data-original=&/v2-f53d05dc1c0ef5b896ab3_r.png&&&p&图片截自 CMU 10-601课件&/p&&p&&a href=&///?target=http%3A//www.cs.cmu.edu/%7Eninamf/courses/601sp15/slides/15_boosting_3-16-2015.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&cs.cmu.edu/~ninamf/cour&/span&&span class=&invisible&&ses/601sp15/slides/15_boosting_3-16-2015.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&
Adaboost据说是最早的实用的boosting algorithm? 图片截自 CMU 10-601课件
&p&&a href=&///?target=http%3A//homes.cs.washington.edu/%7Etqchen/pdf/BoostedTree.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&homes.cs.washington.edu&/span&&span class=&invisible&&/~tqchen/pdf/BoostedTree.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&XGBoost作者之一陈天奇的PPT,截止目前我看到的对于Gradient Boost 讲解最清楚最通俗流畅,一气呵成的资料,Adaboost 参考周志华西瓜书就可以明白了&/p&
XGBoost作者之一陈天奇的PPT,截止目前我看到的对于Gradient Boost 讲解最清楚最通俗流畅,一气呵成的资料,Adaboost 参考周志华西瓜书就可以明白了
&p&谢邀。&/p&&p&我理解应该是SVM用作adaboost中弱分类学习器吧&/p&
谢邀。我理解应该是SVM用作adaboost中弱分类学习器吧
我的理解,你困于模型复杂性(树深、剪枝)和精确性(剪枝)上,看看gbdt能否启迪你点什么,然后试试xgboost或者lightgbm。如果非要执拗于adaboost,可以看看deep boosting,每棵树的深度不一样,开源了,论文需要pac基础,仅仅知道vc bound是不够的。&br&&br&才疏学浅,可能不能帮到你什么,见谅
我的理解,你困于模型复杂性(树深、剪枝)和精确性(剪枝)上,看看gbdt能否启迪你点什么,然后试试xgboost或者lightgbm。如果非要执拗于adaboost,可以看看deep boosting,每棵树的深度不一样,开源了,论文需要pac基础,仅仅知道vc bound是不够的。 才疏…
&p&其实你理解的方法是重采样方法。&/p&&p&但是这个也可以通过更改上一轮中分错样本的权重(重赋权法),使得其损失函数增大,基分类器就会倾向于将权重大的这些样本(即错误样本)学对。重赋权法和冲采样法没有显著地优劣差别(引自周志华《机器学习》P177)。&/p&
其实你理解的方法是重采样方法。但是这个也可以通过更改上一轮中分错样本的权重(重赋权法),使得其损失函数增大,基分类器就会倾向于将权重大的这些样本(即错误样本)学对。重赋权法和冲采样法没有显著地优劣差别(引自周志华《机器学习》P177)。
&p&AdaBoost属于Boosting提升方法的一种,可以把它理解成几个基学习器的线性组合(周志华 《机器学习》P173):&/p&&p&&img src=&///equation?tex=H%28x%29%3D%5Csum_%7Bt%3D1%7D%5E%7BT%7D%5Calpha_th_t%28x%29& alt=&H(x)=\sum_{t=1}^{T}\alpha_th_t(x)& eeimg=&1&& ,&/p&&p&其中&img src=&///equation?tex=H%28x%29& alt=&H(x)& eeimg=&1&& 为AdaBoost模型的最后输出,&img src=&///equation?tex=T& alt=&T& eeimg=&1&& 为基学习器的个数,&img src=&///equation?tex=h_t%28x%29& alt=&h_t(x)& eeimg=&1&& 是每一个基学习器输出的label,&img src=&///equation?tex=%5Calpha_t& alt=&\alpha_t& eeimg=&1&& 为该分类器所拥有的权重。&/p&&p&算法流程:&/p&&p&*************伪代码分开始咯*************&/p&&br&&p&step0:初始化每个样本的权重(通常为均值)&/p&&img src=&///equation?tex=for%5C+t%3D1%2C2%2C...T%3A& alt=&for\ t=1,2,...T:& eeimg=&1&&&p&
step1:使用当前的样本分布训练得到分类器&img src=&///equation?tex=h_t%28x%29& alt=&h_t(x)& eeimg=&1&&&/p&&p&
step2:根据上次训练的结果调整样本的权重&/p&&p&
step3:计算每一个分类器的权&img src=&///equation?tex=%5Calpha_t& alt=&\alpha_t& eeimg=&1&&&/p&&p&根据上述线性加权公式返回&img src=&///equation?tex=H%28x%29& alt=&H(x)& eeimg=&1&& .&/p&&p&*************伪代已经结束了*************&/p&&p&有几个问题:&br&&/p&&ol&&li&基分类器,一般是弱分类器,比如二分类,分类器只需要稍微高于0.5即可&/li&&li&权重如何更新:一般使用&img src=&///equation?tex=%5Cdelta%3D%5Csqrt%7B%5Cfrac%7B1-%5Cepsilon_t%7D%7B%5Cepsilon_t%7D%7D& alt=&\delta=\sqrt{\frac{1-\epsilon_t}{\epsilon_t}}& eeimg=&1&& ,放大错误样本权重乘以&img src=&///equation?tex=%5Cepsilon_t& alt=&\epsilon_t& eeimg=&1&&,减小正确样本权重除以&img src=&///equation?tex=%5Cepsilon_t& alt=&\epsilon_t& eeimg=&1&& ,&img src=&///equation?tex=%5Cepsilon_t& alt=&\epsilon_t& eeimg=&1&& 为第t个分类器的错误率。&/li&&li&计算得到该分类器的权重 &img src=&///equation?tex=%5Calpha_t%3D%5Csqrt%7B%5Cfrac%7B1-%5Cepsilon_%7Bt%7D%7D%7B%5Cepsilon_%7Bt%7D%7D%7D& alt=&\alpha_t=\sqrt{\frac{1-\epsilon_{t}}{\epsilon_{t}}}& eeimg=&1&&(详见周志华《机器学习》P175) 。&/li&&/ol&&p&举个栗子。。。&/p&&p&假设现在有一堆水果,幼儿园老师问小朋友,怎么样判断一个水果是不是苹果:&/p&&ul&&li&韩梅梅(&img src=&///equation?tex=h_1%28x%29& alt=&h_1(x)& eeimg=&1&& )说苹果皮比较光滑&/li&&/ul&&p&但是有一部分样本不对,根据错误样本可以得到&img src=&///equation?tex=%5Cepsilon_1%2C%5Calpha_1& alt=&\epsilon_1,\alpha_1& eeimg=&1&&&/p&&ul&&li&李雷(&img src=&///equation?tex=h_2%28x%29& alt=&h_2(x)& eeimg=&1&& )看看不对的样本(相当对上述将错误样本的权重放大)然后说苹果是红的&/li&&/ul&&p&但还是有一些苹果不是红色的,(可以得到 &img src=&///equation?tex=%5Cepsilon_2%2C%5Calpha_2& alt=&\epsilon_2,\alpha_2& eeimg=&1&& )&/p&&ul&&li&吉姆格雷(&img src=&///equation?tex=h_3%28x%29& alt=&h_3(x)& eeimg=&1&& )再看看上面错误的例子(错误样本放大)然后说说苹果是有梗的。&/li&&/ul&&p&还是有一点不对,可以得到&img src=&///equation?tex=%5Cepsilon_3%2C%5Calpha_3& alt=&\epsilon_3,\alpha_3& eeimg=&1&& .&/p&&p&这时候远方下课钟声响起...&/p&&p&虽然还有些不不对,但大体上已经能够辨别苹果的特征。于是幼儿园老师(&img src=&///equation?tex=H%28x%29& alt=&H(x)& eeimg=&1&& )就根据上面各自回答的情况投票(&img src=&///equation?tex=%5Csum& alt=&\sum& eeimg=&1&& )得到最后的决策。&/p&&p&例子并不是十分准确,但明白大意就好[逃][逃]&/p&
AdaBoost属于Boosting提升方法的一种,可以把它理解成几个基学习器的线性组合(周志华 《机器学习》P173):H(x)=\sum_{t=1}^{T}\alpha_th_t(x) ,其中H(x) 为AdaBoost模型的最后输出,T 为基学习器的个数,h_t(x) 是每一个基学习器输出的label,\alpha_t 为…
&p&它们都是提升树算法,提升树可以用于回归也可以用于分类,当用于回归时,损失函数为最小二乘,用于分类时,可以采用指数损失函数,而Adaboost就是采用指数损失函数用于二类分类问题的一种特例。&/p&&p&当用于回归时,通常学习一个新的学习器去拟合当前模型的残差,采用最小二乘或指数损失函数可以方便地求损失函数关于变量的梯度,但是,对于一些一般损失函数,Friedman提出了梯度提升算法,它类似于梯度下降法,将当前模型往最小化损失函数的方向移动,可以看作在函数空间中损失函数对当前模型求梯度,之后用梯度去拟合当前模型的残差。&/p&&p&梯度提升树与一般的回归提升树相比,一个使用关于函数的梯度拟合残差,一个是新学习一棵决策树拟合残差,梯度提升树相当于在函数空间中移动当前模型以减小误差,而一般的回归提升树相当于再加一颗决策树以减小误差。&/p&
它们都是提升树算法,提升树可以用于回归也可以用于分类,当用于回归时,损失函数为最小二乘,用于分类时,可以采用指数损失函数,而Adaboost就是采用指数损失函数用于二类分类问题的一种特例。当用于回归时,通常学习一个新的学习器去拟合当前模型的残差,…
问题时间比较久了,不知题主搞懂了没,且说一下我的理解。&br&问题1:问题刚开始的那篇博客是怎么回事。&br&我认为那篇博客的理解与实际论文是有偏差的,论文在这里(&a href=&///?target=http%3A//docs./GreedyFuncApproxSS.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&docs.&/span&&span class=&invisible&&/GreedyFuncApproxSS.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&)。1)GBDT能解决的是multi-class问题而不是multi-label问题。&br&&img src=&/v2-2a2aa088a2_b.png& data-rawwidth=&750& data-rawheight=&261& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&/v2-2a2aa088a2_r.png&&&br&multi-class是只能属于一类,multi-label是可以同时属于多类,比如说,你在男/女二分类中只能是其中一种性别,在人脸属性(黑头发,蓝眼睛,双眼皮)中可以同时是黑头发、双眼皮。2)GBDT做分类时,每一次迭代需要有k棵树,k是类别数目,每棵树对一个类别进行预测。每个叶子节点也只是输出一个值,可把这颗树看作一个函数f,f将输入样本的特征映射为该值。(注意,该值并不是类别的概率,概率还需要一个logistic转化,logistic regression是:特征x先转化成实值z,然后z经过logistic regression转化成概率p(x),这里叶子节点的值相当于z)。另:论文中专门提到了关于二分类的问题,比multi-class要简单些。&br&问题2:关于实验误差&br&我没有用过xgboost,通过你描述的输出 “输出预测preds为一个一维的1611维度向量,值在【0,1】区间&b&”
&/b&你可以检查一下 训练数据和测试数据的格式,比如说每行代表一个样本还是特征的一个维度。关于叶子节点值的意义问题1中已经说了,可以对应理解一下。&br&问题3:每次输出的模型,不太明白你的意思。&br&附几个相关链接:&br&softmax的形式和损失函数:&a href=&///?target=http%3A//ufldl.stanford.edu/wiki/index.php/Softmax%25E5%259B%259E%25E5%25BD%2592& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Softmax回归 - Ufldl&i class=&icon-external&&&/i&&/a&&br&这个回答简洁明白:&a href=&/question//answer/& class=&internal&&GBDT如何应用于二分类问题?具体如何使用logitloss? - 汪识瀚的回答 - 知乎&/a&
问题时间比较久了,不知题主搞懂了没,且说一下我的理解。 问题1:问题刚开始的那篇博客是怎么回事。 我认为那篇博客的理解与实际论文是有偏差的,论文在这里()。1)GBDT能解决的是multi-class问题而不是multi-label问题。 multi-cla…
&a href=&///?target=http%3A///p/H85efR.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&【数据挖掘】RWeka做分类任务-C4.5算法-R语言-大不六文章网()&i class=&icon-external&&&/i&&/a&
&p&王婆卖瓜,自卖自吹。不多说直接上链接:&/p&&p&&a href=&///?target=http%3A//blog.csdn.net/zy/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&OpenCV中的Haar+Adaboost级联分类器分解(一):Haar特征介绍 - zy的专栏 - 博客频道 - CSDN.NET&i class=&icon-external&&&/i&&/a&&/p&&p& 想了解训练算法?↑ 点击他有神秘力量&/p&
王婆卖瓜,自卖自吹。不多说直接上链接: 想了解训练算法?↑ 点击他有神秘力量
已有帐号?
无法登录?
社交帐号登录2593人阅读
机器学习基础(8)
bootstrap、bagging、boosting和adaboost是机器学习中几种常用的重采样方法。其中bootstrap重采样方法主要用于统计量的估计,bagging、boosting 和 adaboost方法则主要用于多个子分类器的组合。
一、bootstrap:估计统计量的重采样方法
&&&&bootstrap方法是从大小为n的原始训练数据集D中随机选择n个样本点组成一个新的训练集,这个选择过程独立重复B次,然后用这B个数据集对模型统计量进行估计(如均值、方差等)。由于原始数据集的大小就是n,所以这B个新的训练集中不可避免的会存在重复的样本。
&&&&统计量的估计值定义为独立的B个训练集上的估计值θb的平均:
θ=1B∑b=1Bθb
二、bagging:
&&&&bagging方法是从大小为n的原始训练数据集D中随机选择n′(n′&n)个样本点组成一个新的训练集,这个选择过程独立重复B次。然后,每一个新的训练集都被独立的用于训练一个子分类器,最终分类器的分类结果由这些子分类器投票决定。
三、boosting:
&&&&boosting依次训练k个子分类器,最终的分类结果由这些子分类器投票决定。首先从大小为n的原始训练数据集中随机选取n1个样本训练出第一个分类器,记为C1,然后构造第二个分类器C2的训练集D2,要求:D2中一半样本能被C1正确分类,而另一半样本被C1错分。接着继续构造第三个分类器C3的训练集D3,要求:C1、C2对D3中样本的分类结果不同。剩余的子分类器按照类似的思路进行训练。
&&&&boosting构造新训练集的主要原则是使用最富信息的样本。
四、adaboost:
&&&&adaboost方法是boosting方法的一种改进。adaboost为每个样本赋予一个权值,adaboost希望在下一轮训练时被上一个子分类器正确分类的样本权重和与被错误分类的样本权重和相等,从而下一个子分类器会和前一个子分类器有较大差别。上一个子分类器在这个数据集上正确率为50%。
&&&&例如:假设第i个子分类器Ci在数据集D上错误分类1126个样本,正确分类6211个样本,那么错误率为11267337,正确率为62117337。为了使Ci在这个数据集D上的分类错误率为50%,错误分类样本权重乘以6211,正确分类样本权重乘以1126。
&&&&按照这个思路,假设δi=1-?i?i----√,?i是Ci在训练集上的分类错误率,错误分类样本权重werror和正确分类样本权重wcorrect的更新规则为:
werror←werror?δiwcorrect←wcorrect/δi
adaboost算法总结如下:
&&&&当分类结果与标签不同时ym(xj)≠tj,指示函数I(ym(xj)≠tj)等于1,否则等于0。最小化目标函数Jm=∑nj=1w(m)jI(ym(xj)≠tj)时可以先按照权重进行采样得到新的训练集,然后在这个训练集上训练子分类器。
[1]Pattern Recognition and Machine Learning
[2]模式分类
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:62284次
排名:千里之外
原创:33篇
关注:机器学习和数据挖掘、自然语言处理、深度学习等领域。
(1)(1)(2)(2)(1)(1)(2)(1)(1)(1)(1)(2)(7)(8)(5)adaboost学习(二)
adaboost学习(二)
发布时间: 10:31:03
编辑:www.fx114.net
本篇文章主要介绍了"adaboost学习(二)",主要涉及到adaboost学习(二)方面的内容,对于adaboost学习(二)感兴趣的同学可以参考一下。
众所周知,模式识别的方法可以按照参与识别特征的属性来区分,可以分为两大类:一、使用定量特征(可度量)如物体长度、宽度等,来描述的各种模式,这一类主要是指决策理论,有匹配、统计、神经网络等方法;二、使用定性特征如特征结构、排列顺序等,来描绘的各种模式,这一类主要是指结构判别,主要有串和树的匹配等方法。
模式识别的完整的流程顺序是:传感器——分割组织——特征提取——分类器——后处理。其中分类器的设计部分,可以使用的理论有很多,目前主要包括:基于统计理论的方法(贝叶斯理论)、线性判别函数、神经网络的方法、随机方法(对于复杂的问题)、非度量方法(定性结构特征)
分类器得到的模型不仅要很好拟合输入数据,还要能够正确地预测未知样本的类标号。因此,训练算法的主要目标就是要建立具有很好的泛化能力模型,即建立能够准确地预测未知样本类标号的模型。
通常我们用“方差”和“偏差”来测量学习算法与给定分类问题的“匹配”和“校准”程度。“偏差”度量的是匹配的“准确性”和“质量”:一个高的偏差意味着一个坏的匹配,“方差”度量的是匹配的“精确性”和“特定性”:一个高的方差意味着一个弱的匹配。
研究表明,使用重采样技术可以提高分类器的准确率,而boosting算法就是涉及分类器设计中的重采样技术。其思想内涵在于:从给定的数据集中抽取多个数据子集,使得有可能计算任意统计量的值及其范围。
说道boosting,不得不说Arcing(adaptive reweighting
and combining)自适应的权值重置和组合:重新使用和选择数据,以期达到改善分类器性能的目的。最简单的arcing版本就是bagging算法。
Bagging一个多分类器系统
bagging算法的基本思想:
给定一个弱学习算法,和一个训练集;单个弱学习算法准确率不高;将该学习算法使用多次,得出预测函数序列,进行投票,最后结果准确率将得到提高。
步骤1:从大小为n的原始数据集D中,分别独立随机的抽取n’个数据(n’),形成自助数据集,将这个过程独立重复多次,直到产生很多独立的自助数据集。
步骤2:每一个自助数据集都被独立的用于训练一个“分量分类器”。
步骤3、最终的分类判决由这些“分量分类器”各自的判决结果投票决定。
Bagging算法是第一个多分类器系统,后面还有(组合分类器系统)。
For t = 1, 2, …, T Do
从数据集S中取样(放回选样)
训练得到模型Ht
对未知样本X分类时,每个模型Ht都得出一个分类,得票最高的即为未知样本X的分类,也
可通过得票的平均值用于连续值的预测 。
Bagging和boosting的区别
随机选择,各轮训练集相互独立
没有权重;可以并行生成
在有些数据集中,boosting会引起退化
要求“不稳定”的分类方法
各轮训练集并不独立,它的选择与前轮的学习结果有关
有权重;只能顺序生成
在大多数数据集中,boosting的准确性比bagging高
要求“不稳定”的分类方法
训练集的小变动能够使得分类模型显著变动
Bagging是一个纯粹的降低相关度的方法,如果树的节点具有很高的相关性,bagging就会有好的结果。早期的AdaBoost在第二步的时候采用重采样方法,即使某些样本权重增加。这种方法与bagging存在某种关联。它也是Boost的成功之处中降低相关度方面的重要部分。
AdaBoost在第二步中如果使用加权的tree-growing算法,而不是重采样算法,效果会更好。可以使用stumps作为弱分类器
最初的boosting算法
1989年Kearns and Valiant研究了PAC学习模型中弱学习算法和强学习算法两者间的等价问题,即任意给定仅仅比随机猜测稍好(准确率大于0.5)的弱学习算法,是否可以被提升为强学习算法?若两者等价,则我们只需寻找一个比随机猜测稍好的弱学习算法,然后将其提升为强学习算法,从而不必费很大力气去直接寻找强学习算法。就此问题,Schapire于1990年首次给出了肯定的答案。他主持这样一个观点:任一弱学习算法可以通过加强提升到一个任意正确率的强学习算法,并通过构造一种多项式级的算法来实现这一加强过程,这就是最初的Boosting算法的原型。
主要思想是,根据已有的训练样本集设计一个分类器,要求其准确率要比平均性能好,然后依次顺序加入多个分量分类器系统,最后形成一个总体分类器。
以一个二类问题举例。
步骤1:从大小为n的原始样本集D中随机选取n1个样本点(不放回),组成样本集D1。根据D1训练出第一个分类器C1。
步骤2:构造第二个样本集D2,它是根据C1最富信息的那些样本点组成的。在最后产生的D2集合中将有一半的样本被C1正确分类,而另一半的样本被C1错误分类。
步骤3:继续构造第三个样本集D3,方法:在D中剩余的样本中选取样本点,并且用C1和C2进行分类,如果C1和C2判决结果不同,那么就把样本加入D3,否则就忽略这个样本。然后用D3训练新分类器C3。
步骤4:用这3个分类器对新样本x进行分类,如果C1和C2的判决结果相同,则表为一类,不同则表为另一类。
Boosting方法有许多不同的变形,其中最流行的一种就是adaboost。这个名词是“adaptive boosting”的缩写。这个方法允许设计者不断的加入新的“弱分类器”,直到达到某个预定的最小错误率。
1995年Freund and Schapire提出AdaBoost算法。
1996年Yoav Freund在Experiments with a New Boosting Algorithm中提出了AdaBoost.M1和AdaBoost.M2两种算法。其中,AdaBoost.M1是我们通常所说的Discrete
AdaBoost:而AdaBoost.M2是M1的泛化形式。该文的一个结论是:当弱分类器算法使用简单的分类方法时,boosting的效果明显地统一地比bagging要好。当弱分类器算法使用C4.5时,boosting比bagging较好,但是没有前者的比较来得明显。
AdaBoost.M1 Discrete AdaBoost:
1.获得一组样本(X)和它的分类(Y)和一个分类器(weaklearn).
2.赋予平均的权值分布D(i)
进入循环:T次
1. 赋予弱分类器权值D(i),使用弱分类器获得样本(X)到分类(Y)上的一个映射.(就是把某个X归到某个Y类中去)
2. 计算这个映射的误差e,e=各个归类错误的样本权值之和.如果e&1/2那么弱分类器训练失败,跳出循环,
训练结束(这在二值检测中是不会发生的,而多值的情况就要看分类器够不够强健了)
3.&设beta B = e / ( 1 - e ).用于调整权值.因为e&1/2.因此0
4. 如果某样本分类正确,该样本的权值就乘以B让权值变小;如果分类错误,就让该样本的权值乘以B^-1或者不变,这样就让分类正确的样本权值降低,分类错误的样本权值升高,加强了对较难分类样本的分类能力
5. 权值均衡化
1. 最终的分类器是,当一个X进入时,遍历所有Y,寻找使(h(x)=y的情况下,log(1/B)之和)最大者即是输出分类y
具体算法:
每个样本都赋予一个权重,T次迭代,每次迭代后,对分类错误的样本加大权重,使得下一次的迭代更加关注这些样本。
输入:(X1,Y1), (X2,Y2),…(Xn,Yn)
Xi∈X, Yi∈Y={+1,-1}
初始化权值:D1(i)=1/n
For t=1,…,T
在Dt下训练,
得到弱的假设ht: X-&{-1,+1},
错误率:Εt=ΣDt(i) [ht(Xi)≠Yi]
选择αt=1/2 ln ( (1- Εt)/ Εt ),
更改权值:
if ht(Xi)≠Yi , Dt+1(i)=Dt(i)* eαt /Zt
if ht(Xi)=Yi , Dt+1(i)=Dt(i)* e -αt /Zt
输出:H(X)=sign( ∑ αtht(X) )
带图版本(程序版本):
初始赋予每个样本相等的权重1/N ;
For t = 1, 2, …, T Do
学习得到分类法Ct;
计算该分类法的错误率Et
Et=所有被错误分类的样本的权重和;
βt= Et/(1 - Et)
根据错误率更新样本的权重;
正确分类的样本: Wnew= Wold* βt
错误分类的样本: Wnew= Wold
调整使得权重和为1;
每个分类法Ct的投票价值为log [ 1 / βt ]
转自:&http://210.43.24.222/chy/3sbase/news/?538.html
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:小木虫 --- 600万学术达人喜爱的学术科研平台
&&查看话题
Adaboost方法究竟是如何选择训练样本?
知道在Adaboost方法中,随着弱学习机个数的增加,训练样本的权重在不断调整。这里有个疑惑,好多文献都提到在新一轮训练中,训练样本的选择根据权重来选,我的理解是权重大的样本选择的机率就就大(有点类似轮盘赌),使得训练样本中出现较多“困难”样本。但在下载的好多代码中,好像训练样本的选择和样本权重没有关系,始终是那个训练集,样本权重的变化仅仅用在计算弱学习机的权重上。这是为什么?还是我的理解有偏差?
谢谢帮顶!
学术必备与600万学术达人在线互动!
扫描下载送金币
北京学而思教育科技有限公司 地址:北京市海淀区北三环甲18号中鼎大厦A座1层102室 电话:010-}

我要回帖

更多关于 edius 重采样方法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信