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