adaboost简单分类案例附MATLAB源码.docx

上传人:b****8 文档编号:11406106 上传时间:2023-02-28 格式:DOCX 页数:11 大小:595.69KB
下载 相关 举报
adaboost简单分类案例附MATLAB源码.docx_第1页
第1页 / 共11页
adaboost简单分类案例附MATLAB源码.docx_第2页
第2页 / 共11页
adaboost简单分类案例附MATLAB源码.docx_第3页
第3页 / 共11页
adaboost简单分类案例附MATLAB源码.docx_第4页
第4页 / 共11页
adaboost简单分类案例附MATLAB源码.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

adaboost简单分类案例附MATLAB源码.docx

《adaboost简单分类案例附MATLAB源码.docx》由会员分享,可在线阅读,更多相关《adaboost简单分类案例附MATLAB源码.docx(11页珍藏版)》请在冰豆网上搜索。

adaboost简单分类案例附MATLAB源码.docx

adaboost简单分类案例附MATLAB源码

算法介绍

算法分析

举例说明

依次循环

总结

该方法只是adaboost入门案例,里面的分类效果不好,需要进一步改进,但是可以作为入门学习的资料。

MATLAB源码

clc;

clearall;

closeall;

%绘制给出的点数

x=[0,1,2,3,4,5,6,7,8,9];

y=[1,1,1,-1,-1,-1,1,1,1,-1];

z=[x;y];

subplot(2,1,1)

fori=1:

1:

size(x,2)

ify(i)==1

plot(x(i),y(i),'+r');

else

plot(x(i),y(i),'o');

end

holdon

end

axis([-1,10,-2,2]);%设置坐标轴

%进行线性弱分类器分类

num=4;%循环次数

wSample=1/size(x,2)*ones(size(x,2),1);%样例的权重

wClass=zeros(num,1);%存放权重值

h=zeros(num,1);%存放分类器

be=ones(num,1);%为下面循环取得最小误差提供变量

fori1=1:

1:

num

forj=0:

0.1:

9

e0=0;%判断错误的

e1=0;%判断正确的

fork=1:

10%线两边同时判别,以最小误差率为准则进行取值

ifz(1,k)>j

ifz(2,k)==1

e0=e0+wSample(k);

else

e1=e1+wSample(k);

end

else

ifz(2,k)==-1

e0=e0+wSample(k);

else

e1=e1+wSample(k);

end

end

end

ifbe(i1)>e0

be(i1)=e0;

h(i1)=j;

end

end

%画出该弱直线分类器

line([h(i1)h(i1)],[-22],'color','c','LineWidth',4)%[][][x前x后]][y前y后]([]内空格隔开,无逗号)

sumclass=sum(wSample(:

1));%计算上一次各个权重分布和

%如此我已经找到了最好的值,下面计算分类器权重

we=be(i1)/sumclass;

wClass(i1)=0.5*log((1-we)/we);

%计算各个的权重分布

fork1=1:

10

ifz(1,k1)>h(i1)

ifz(2,k1)==1

wSample(k1)=exp(wClass(i1))*wSample(k1);

else

wSample(k1)=exp(-wClass(i1))*wSample(k1);

end

else

ifz(2,k1)==-1

wSample(k1)=exp(wClass(i1))*wSample(k1);

else

wSample(k1)=exp(-wClass(i1))*wSample(k1);

end

end

end

end

holdoff

%测试得到的强分类器

subplot(2,1,2)

G=zeros(901,1);

abak=0:

0.01:

9;

forq=1:

1:

901

forabai=1:

num

ifabak(q)>h(abai)

G(q)=G(q)+wClass(abai)*(-1);

else

G(q)=G(q)+wClass(abai)*

(1);

end

end

end

plot(abak,G,'r','LineWidth',4)

holdon

SG=zeros(901,1);%绘制sign函数图形

fori=1:

1:

901

SG(i)=sign(G(i));

end

plot(abak,SG,'Color',[010],'LineWidth',4)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1