- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一种adaboost多类分类算法 Matlab实现
一、 adaboost算法简介
Adaboost算法的主要思想是给定一个训练集 (x1,y1),…,(xm,ym),其中xi属于某个域或者实
例空间X, yi=-1或者+1。初始化时Adaboost指定训练集上的分布为 1/m,并按照该分布调用
弱学习器对训练集上的分布,并按照该分布调用弱学习器对训练集进行训练,每次训练后, 根据训练结果更新训练集上的分布, 并按照新的样本分布进行训练。 反复迭代T轮,最终得
到一个估计序列h1,..,hT,每个估计都具有一定的权重,最终的估计 H是采用权重投票方式获
得。Adaboost算法的伪代码如 图1所示。
输人训练集s ■ :3皿)?…?(斗皿}仁其申口 €心貼
e I- l I II;送代抚牧丁和弱学列器 」
初始化:权璽d⑺-1如J = 1,…宀
执行dor t - 1 ,…
1) 对有权匿分布的训练集学习.得到一个估计九:
2 1 ? * H
2) 计算叽训练仙并勺=片7[扣(卅)H 如果心
=[)或苦即孑1/2.令丁二Li井跳岀楣环
3〕令:血;-0,5 x ln[( 1 -* )/eJ
4】更新权窜:口-]⑴=-
其中占是标卓化闵子
T
) 口 sign (
I
图 1、Adaboost 算法
二、 多类问题
从上面的流程可以看出,Adaboost算法是针对二类问题的。但是我们面对的问题很多 都是不是简单的非 0即1,而是多类问题。常见的就是解决方法,就是把多类问题转换成二 类问题。用的比较多就是两种组合方法, OAA和0A0,我这里就是采用对这种方法的结合,
实现adaboost算法对多类问题的分类。
目前需要对7类问题进行分类,依次编号: 0、1、2、3、4、5、6。
特征向量28个。
样本总数840个;
OAA分类器的个数 7个
OAO分类器的个数 7 ( 7-1) /2 = 21个。
弱分类器的个数 K= 10;
弱分类用BP神经网络
算法的思路:
Step1、把数据分成训练集和测试集
Step 2、训练 OAA、OAO分类器;
Step3、保存相应的分类器和投票权重;
Step4、测试样本,预测所以 OAA分类器的权重;
Step5、选择OAA预测值中最大的两个
Step6、选用OAO分类器对选取预测权重最大的两个类进行预测;
Step7、输出测试结果;
注:为了统一,在训练 OAO 分类器是,把类别序列在前的类为正样本,输出 +1,类别
序列号在后面的为负样本,输出为 -1。
测试强分类器的识别率为: 0.93 左右。
三、小结
其实这个主要的思想就是用差异的样本和差异的分类器, 组合较好的分类器器, 提升样 本的准确性和鲁邦性。
在对多类问题识别中。个人觉得本算法还是有一定的缺陷,如果从 OAA 分类器预测值 中选取的最大的两个值,不包含在我们正确的样本类别中,那么我们最后的 OAO 决策就没
有意义。因此对这个 OAA 预测值的组合也是一个比较关键的技术,也请大家有好的组合决 策方法进行交流。
我对 Adaboost 算法理解的比较肤浅,还请大家指点。
如有需要请加QQ272122352,验证多类分类问题
谢谢合作,非诚勿扰!
附件 1、OAO/OAA 分类器训练 clear clc tic,
%加载数据
load Sheet1 Sheet1
%删除无效数据
while(1)
if(Sheet1(end,1) == 0)
Sheet1(end,:) = []; else
break;
end
end
%分解输入输出
Input = Sheet1(:,2:end);
Output = Sheet1(:,1);
N = max(max(Output));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%
one-against-all) 分 类%%
one-against-all) 分 类
%
% 类 别 标 志 器。把样本组合成一对多
% 类 别 标 志 器。
把样
本组合成一对多
的分类
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%
NetName_OAA = {}; NetName_OAA_C = 0; for Flag = 0 : N
%输入变量归一化处理 [inputn,inputps] = mapminmax(Input); input_train = [];
input_test = [];
output_train = []; output_test = []; %生成测试集和训练集
您可能关注的文档
- 2020年苏教版选修2-2课后练习(有答案解析).docx
- 2020年苏教版选修2-3课后练习(13)(含答案解析).docx
- 2020年苏教版选修2-3课后练习(含答案解析).docx
- 2020年苏教版选修2-3课后练习(18)(含答案解析).docx
- 2020年苏教版选修2-3课后练习(有答案解析).docx
- 2020年鲁科版物质结构与性质课后练习(6)(有答案解析).docx
- 2020年苏教版选修2-3课后练习(21)(有答案解析).docx
- 2020年鲁科版物质结构与性质课后练习(7)(有答案解析).docx
- 2020年苏教版选修2-3课后练习(15)(含答案解析).docx
- 2020年鲁科版选修3-5课后练习(有答案解析).docx
原创力文档


文档评论(0)