下载此文档

Adaboost算法多类问题Matlab实现.docx


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
一种adaboost多类分类算法Matlab实现一、adaboost算法简介 Adaboost算法的主要思想是给定一个训练集(x1,y1),…,(xm,ym),其中xi属于某个域或者实例空间X,yi=-1或者+1。初始化时Adaboost指定训练集上的分布为1/m,并按照该分布调用弱学习器对训练集上的分布,并按照该分布调用弱学习器对训练集进行训练,每次训练后,根据训练结果更新训练集上的分布,并按照新的样本分布进行训练。反复迭代T轮,最终得到一个估计序列h1,..,hT,每个估计都具有一定的权重,最终的估计H是采用权重投票方式获得。Adaboost算法的伪代码如图1所示。图1、Adaboost算法二、多类问题 从上面的流程可以看出,Adaboost算法是针对二类问题的。但是我们面对的问题很多都是不是简单的非0即1,而是多类问题。常见的就是解决方法,就是把多类问题转换成二类问题。用的比较多就是两种组合方法,OAA和OAO,我这里就是采用对这种方法的结合,实现adaboost算法对多类问题的分类。 目前需要对7类问题进行分类,依次编号:0、1、2、3、4、5、6。 特征向量28个。 样本总数840个;OAA分类器的个数7个OAO分类器的个数7(7-1)/2=21个。弱分类器的个数K=10;弱分类用BP神经网络算法的思路:Step1、把数据分成训练集和测试集Step2、训练OAA、OAO分类器;Step3、保存相应的分类器和投票权重;Step4、测试样本,预测所以OAA分类器的权重;Step5、选择OAA预测值中最大的两个Step6、选用OAO分类器对选取预测权重最大的两个类进行预测;Step7、输出测试结果;注:为了统一,在训练OAO分类器是,把类别序列在前的类为正样本,输出+1,类别序列号在后面的为负样本,输出为-1。 测试强分类器的识别率为:。三、小结 其实这个主要的思想就是用差异的样本和差异的分类器,组合较好的分类器器,提升样本的准确性和鲁邦性。 在对多类问题识别中。个人觉得本算法还是有一定的缺陷,如果从OAA分类器预测值中选取的最大的两个值,不包含在我们正确的样本类别中,那么我们最后的OAO决策就没有意义。因此对这个OAA预测值的组合也是一个比较关键的技术,也请大家有好的组合决策方法进行交流。我对Adaboost算法理解的比较肤浅,还请大家指点。如有需要请加QQ,验证多类分类问题谢谢合作,非诚勿扰!附件1、OAO/OAA分类器训练clearclctic,%加载数据loadSheet1Sheet1%删除无效数据while(1)if(Sheet1(end,1)==0)Sheet1(end,:)=[];elsebreak;endend%分解输入输出Input=Sheet1(:,2:end)';Output=Sheet1(:,1)';N=max(max(Output));%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%生成一对多(one-against-all)分类器%%%类别标志,把样本组合成一对多的分类器。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Adaboost算法多类问题Matlab实现 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人rdwiirh
  • 文件大小42 KB
  • 时间2020-08-21