📄 perceptron_2.asv
字号:
function classnum=Perceptron_2(Sample1,Sample2,sim)
%
n1=size(Sample1);
for i=1:n1(1)
ExtendSample1(i,:)=[Sample1(i,:) 1]; %样本1分量增广化,训练样本增加分量1
end;
%
n2=size(Sample2);
for i=1:n2(1)
ExtendSample2(i,:)=[Sample2(i,:) 1]; %样本2分量增广化,训练样本增加分量1
end;
ExtendSample2=-1.*ExtendSample2; %训练样本2乘以-1
%
Sample=[ExtendSample1;ExtendSample2];
n=size(Sample);
w=ones(1,n(2)); %增广权矩阵赋初值 %w=[1 1 1];
%
c=1; %修正量p=1>0
d=zeros(1,n(1));
inter=0;
while (min(d)<=0&&inter<200) %循环条件每一个样本分类正确
inter=inter+1;
for i=1:n(1)
d(i)=w*Sample(i,:)';
if d(i)>0
w=w; %%分类正确,权重不变
end;
if d(i)<=0
w=w+c*Sample(i,:); %%分类错误,调整权重
end;
end;
end;
if(inter>=200)
txt=sprintf('线性不可分');
disp(txt);
else
txt=sprintf('线性可分');
disp(txt);
if w*sim'>0
classnum=0;
else
classnum=1;
end
end
w
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -