两类fisher线性判别函数c语言,fisher线性判别实验.doc

Fisher线性判别实验

实验目的

(1)加深对Fisher线性判别的基本思想的认识和理解;

(2)编写实现Fisher线性判别准则函数的程序。

实验原理

1.线性投影与Fisher准则函数

在两类问题中,假定有个训练样本其中个样本来自类型,个样本来自类型,。两个类型的训练样本分别构成训练样本的子集和。

令:,

是向量通过变换得到的标量,它是一维的。实际上,对于给定的,就是判决函数的值。

由子集和的样本映射后的两个子集为和。因为我们关心的是的方向,可以令,那么就是在方向上的投影。使和最容易区分开的方向正是区分超平面的法线方向。

2.如何得到最佳方向的解析式

各类在维特征空间里的样本均值向量:

通过变换映射到一维特征空间后,各类的平均值为:

映射后,各类样本“类内离散度”定义为:

显然,我们希望在映射之后,两类的平均值之间的距离越大越好,而各类的样本类内离散度越小越好。因此,定义Fisher准则函数:

使最大的解就是最佳解向量,也就是Fisher的线性判别式。

实验内容

依据实验基本原理和基本方法,对实验样本数据中的类别ω1和ω2计算最优方向,画出最优方向的直线,并标记出投影后的点在直线上的位置。选择决策边界,实现新样本xx1=(-0.7,0.58,0.089),xx2=(0.047,-0.4,1.04)的分类。

最优方向分别通过课本64页公式(4-26)和公式(4-28)两种方法求解。

(4-26) (4-28)

四、实验过程

1.输入数据

clc;clear all;

w1=[-0.4 0.58 0.089;-0.31 0.27 -0.04;-0.38 0.055 -0.035;-0.15 0.53 0.011;-0.35 0.47 0.034;0.17 0.69 0.1;-0.011 0.55 -0.18;-0.27 0.61 0.12;-0.065 0.49 0.0012;-0.12 0.054 -0.063];

w2=[0.83 1.6 -0.014;1.1 1.6 0.48;-0.44 -0.41 0.32;0.047 -0.45 1.4;0.28 0.35 3.1;-0.39 -0.48 0.11;0.34 -0.079 0.14;-0.3 -0.22 2.2;1.1 1.2 -0.46;0.18 -0.11 -0.49];

xx=[-0.7 0.58 0.089;0.047 -0.4 1.04];

2.求w1的均值、w2的均值以及sw,最后可得到最佳投影方向

p=zeros(1,3);

for i=1:10

q=w1(i,:);

p=q+p;

end

m1=p/10;

m11=m1'; %得到w1的均值

p=zeros(1,3);

for i=1:10

q=w2(i,:);

p=q+p;

end

m2=p/10;

m22=m2';%得到w2的均值

p1=zeros(3,3);

for i=1:10

q=w1(i,:);

q11=q';

s=q11-m11;

ss=s';

s1=s*ss;

p1=s1+p1;

end

p2=zeros(3,3);

for i=1:10

q=w2(i,:);

q22=q';

s=q22-m22;

ss=s';

s2=s*ss;

p2=s2+p2;

end

sw=p1+p2; %计算sw

sw1=inv(sw);

W=sw1*(m11-m22) ;%得到最优投影方向

3.画出样本点的空间分布及xx1和xx2的空间分布及投影方向

wx1=W'*xx(1,:)';

wx2=W'*xx(2,:)';

wx11=wx1*W;

wx22=wx2*W;

figure;

plot3(w1(:,1),w1(:,2),w1(:,3),'r*');

hold on;

grid on;

plot3(w2(:,1),w2(:,2),w2(:,3),'g*');

x=-pi:0.01:pi;

y=W(2,1)/W(1,1)*x;

z=W(3,1)/W(1,1)*x;

plot3(x,y,z,'b');

hold on;

plot3(xx(1,1),xx(1,2),xx(1,3),'k*');

hold on;

plot3(xx(2,1),xx(2,2),xx(2,3),'c*');

hold on;

plot3(wx11(1),wx1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值