matlab练习程序(线性分类器<最小二乘>)

clear all;
close all;
clc;
num=4;          %元素数量
k=180;            %迭代次数
step=0.1;       %迭代步长
w(1,:)=[-0.5 1 1];   %权值

x=[1 0 0;           %输入的值,每行为一组
   1 1 0;
   1 0 1;
   1 1 1];

d=[1 0 1 0];        %实际输出的值

y=zeros(1,num);     %迭代输出的值 y=w0+w1x1+w2x2
e=zeros(1,k);       %均方误差

for j=1:k
    
    tmp_2=0;
    for i=1:num
        y(i)=w(j,:)*x(i,:)';
        tmp_2=tmp_2+(d(i)-y(i)).^2;
    end
    e(j)=0.5*tmp_2; 

    for i=1:3   
        w(j+1,i)=w(j,i)+step*(d-y)*x(:,i);      %迭代得到新的权值
    end
    
end
plot(e);

参考:

1.http://read.pudn.com/downloads102/ebook/420359/chapter%203/3.doc

原文地址:https://www.cnblogs.com/tiandsp/p/2483316.html