模式识别2-线性分类器(最小二乘法)

2.1:算法原理分析
有两类样本,X1,和X2,如果将这两类数据正确分类,则X1对应的y=1,X2对应的y=-1,但是,往往分类的结果不会都正确,这个时候就有分类错误,将这种错误用就是期望值与真实值的误差,用最小二乘法计算出分类错误:
j(w)=E[|y-xT*w |^2]
w=argmin(j(w))
现在要做的是求出让代价函数j(w)取最小值的时候,w的取值。
要让j(w)最小,需要满足正交条件,也就是这个求导:
(∂j(w))/(∂w )=2E[x*(y-x^T*w)]=0
可以得到 w=R_x^(-1 )*E[xy]
W就是最小二乘法要求的权重矩阵。R为X样本的自相关矩阵,而E[xy]就是x和y的内积。
下面是自相关矩阵:
R_x=E[x*x^T ]=[■(E[x1*x1]&⋯&E[x1*xl]@⋮&⋱&⋮@E[xl*x1]&⋯&E[xl*xl])]
下面是期望输出和输入特征向量的互相关:
E[x,y]=E[[█(x1y@.@.@.@xly)]]
下面就画一下最小二乘法实现的流程图:
这里写图片描述

clear all;
close all;

N1=440;
for i=1:N1
    x1(1,i)=-1.7+1.1*randn(1);         % 440 Samples normal distribution
    x1(2,i)= 1.6+0.9*randn(1);
    x1(3,i)= 1;
end;

N2=400;
for i=1:N2
    x2(1,i)= 1.3+1.0*randn(1);         % 400 Samples normal distriburion
    x2(2,i)=-1.5+0.8*randn(1);
    x2(3,i)= 1;
end;

plot(x1(1,:),x1(2,:),'r*',x2(1,:),x2(2,:),'b*');


y1 = -ones(440,1);
y2 =  ones(400,1);

Y = [y1;y2]; 
X = [x1';x2']';



lambda = zeros(840,1);

% display(X);
% display(Y);

R = X*X';%自相关矩阵
E = X*Y;%互相关矩阵的内积
w = inv(R)*E;%计算权重矩阵W

x = linspace(-5,10,5000);
y = (-w(1)/w(2))*x-w(3)/w(2);

plot(x1(1,:),x1(2,:),'r*',x2(1,:),x2(2,:),'b*',x,y, 'r');
% axis([1,12,0,8]);
disp(w);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值