資源簡介
對分布于二維空間的線性可分樣本進行分類,畫出了其中每個類的判決函數、判決面。
并拓展到非線性可分或者不可分!

代碼片段和文件信息
clear?all;
close?all;
clc
figure;
hold?on;
grid?on;
ang1=rand(1100)*pi*2;
r1=sqrt(rand(1100));
x1=r1.*cos(ang1)+4;
y1=r1.*sin(ang1)+1;
scatter(x1y1‘rd‘);%第一類
ang2=rand(1100)*pi*2;
r2=sqrt(rand(1100));
x2=r2.*cos(ang2)+4;
y2=r2.*sin(ang2)+3.5;
scatter(x2y2‘go‘);%第二類
ang3=(rand(1100))*pi*2;
r3=sqrt(rand(1100));
x3=r3.*cos(ang3)+2;
y3=r3.*sin(ang3)+2;
scatter(x3y3‘b*‘);%第三類
L=legend(‘第一類‘‘第二類‘‘第三類‘0);
set(L‘FontSize‘12);
axis([0?10?0?10]);
z1=[x1?x2?x3];
z2=[y1?y2?y3];
train_samples=[z1‘?z2‘?ones(3001)]‘;
[wcount]??=?sensor(?train_samples1100100100?);%感知器分類
d=zeros(33);
d=[(w(1:)-w(2:))‘(w(1:)-w(3:))‘(w(2:)-w(3:))‘]‘;
A=[d(11)?d(12);d(21)?d(22)];
b=[-d(13);-d(23)];
x=inv(A)*b;
plot([x(1)10][x(2)-(10*d(11)+d(13))/d(12)]‘r-‘);
plot([-d(23)/d(21)x(1)][0x(2)]‘b-‘);
plot([-(d(33)+10*d(32))/d(31)x(1)][10x(2)]‘g-‘);
%畫判決面
X=xlabel(‘x‘);
set(X‘FontSize‘12);
Y=ylabel(‘y‘);
set(Y‘FontSize‘12);
T=title(‘感知器算法實現多類線性可分‘);
set(T‘FontSize‘12);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-04-02?20:38??模式識別實驗\
?????目錄???????????0??2016-11-29?21:29??模式識別實驗\Perceptron1\
?????文件????????1101??2016-11-23?18:13??模式識別實驗\Perceptron1\Perceptron_test.m
?????文件????????1420??2016-11-23?18:19??模式識別實驗\Perceptron1\sensor.m
?????目錄???????????0??2016-11-29?21:29??模式識別實驗\Perceptron2\
?????文件????????1046??2016-11-29?19:57??模式識別實驗\Perceptron2\Perceptron_test.m
?????文件?????????285??2016-11-20?09:33??模式識別實驗\Perceptron2\rise_dim.m
?????文件????????1420??2016-11-23?18:17??模式識別實驗\Perceptron2\sensor.m
?????目錄???????????0??2016-11-29?21:30??模式識別實驗\Perceptron3\
?????文件????????1088??2016-11-23?18:14??模式識別實驗\Perceptron3\Perceptron_test.m
?????文件????????1577??2016-11-29?20:16??模式識別實驗\Perceptron3\sensor.asv
?????文件????????1569??2016-11-29?20:16??模式識別實驗\Perceptron3\sensor.m
評論
共有 條評論