Professional Documents
Culture Documents
دینک لابند مارگلت رد ار ام IUST - Bioelecteric at دینک لابند مارگاتسنیا رد ار ام iust - bioelecteric
دینک لابند مارگلت رد ار ام IUST - Bioelecteric at دینک لابند مارگاتسنیا رد ار ام iust - bioelecteric
@IUST_BIOELECTERIC
کالسبندی
-الگوریتم :knn
در این قسمت قصد داریم الگوریتم کالس بندی knnرا آموزش دهیم.
این الگوریتم ،کالسبندی را براساس رایگیری بین نزدیکترین نمونه ها در داده های آموزش
انجام می دهد.
الگوریتم:
داده ها را به دو قسمت آموزش و تست تقسیم می کنیم.
داده های تست را یک به یک بررسی می کنیم.
فاصله هر نمونه تست را با همه داده های آموزش پیدا می کنیم.
سپس kتا نزدیکترین نمونه آموزش به نمونه تست را انتخاب می کنیم و رای گیری میکنیم.
:کد متلب
%% @IUST_BIOELECTERIC
clc;
clear;
close all;
: تولید داده تست و آموزش:مرحله اول
%% data generating
c1=randn(2,200)*0.5; % . می باشد0.5 و واریانس0 میانگین
c2=randn(2,200)*0.5+1.5; %. می باشد0.5 و واریانس1.5 میانگین
X=[c1,c2];
train=X(1:2,[1:100 201:300]);نمونه های آموزش
test=X(1:2,[101:200 301:400]);نمونه های تست
%% ploting
plot([train(1,1:100)
,test(1,1:100)],[train(2,1:100),test(2,1:100)],'r*','linewidth',1);
hold on
plot([train(1,101:200)
,test(1,101:200)],[train(2,101:200),test(2,101:200)],'b*','linewidth',1);
axis([-3 3 -4 4])
lable=[ones(1,100),-ones(1,100)]; تعیین لیبل داده های
if n1>=n2
;class(i)=1
else
;class(i)=-1
end
;n1=0
;n2=0
end
;)n1=find(class==1
محاسبه میزان خطای کالسبندی در داده های تست ;)e1=(sum(class(1:100)==-1)/100
مربوط به کالس اول
figure
;)plot(test(1,n1),test(2,n1),'r*','linewidth',1
hold on
;)n2=find(class==-1
محاسبه میزان خطای کالسبندی در داده های تست ;)e2=(sum(class(101:200)==1)/100
مربوط به کالس دو
;)plot(test(1,n2),test(2,n2),'b*','linewidth',1
)]axis([-3 3 -4 4
رابطه ی میزان دقت کالسبندی perf=(1-(e1+e2))*100;% >>>==:
)])title(['perfomance: ', num2str(perf
موفق باشید...