模式识别最近邻和fisher分类matlab实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、Fisher 线性判别

Fisher 线性判别是统计模式识别的基本方法之一。它简单,容易实现,且计算量和存储量小,是实际应用中最常用的方法之一。Fisher 判别法Fisher 在1936年发表的论文中首次提出的线性判别法。Fisher 判别法的基本思想是寻找一个最好的投影,当特征向量x 从d 维空间映射到这个方向时,两类能最好的分开。这个方法实际上涉及到特征维数的压缩问题。

一维空间的Fisher 线性判别函数为:

2

1212

()()F m m J w S S -=

+ (1)

i m =

∑x N

1,i=1,2 (2)

2,1,)()(=--=∑∈i m x m x S T i x i i i

ξ (3)

其中,1m 和2m 是两个样本的均值,1S ,2S 分别为各类样本的的类内离散度。投影方向w 为:

)(211

m m S w w -=- (4)

12w S S S =+ (5)

在Fisher 判决函数中,分子反应了映射后两类中心的距离平方,该值越大,类

间可分性越好;分母反应了两类的类内的离散度,其值越小越好;从总体上讲,

()F J w 的值越大越好,在这种可分性评价标准下,使()F J w 达到最大值的w 即为最佳投影方向。

1.1、 Fisher线性判别实验流程图

1.2 Fisher线性判别mtalab代码

data=importdata('C:\Users\zzd\Desktop\data-ch5.mat'); data1=data.data;

data2=bel;

sample1=data1(1:25,:);

sample2=data1(51:75,:);

sample=[sample1

sample2];

sp_l=data2(26:75);

test1=data1(26:50,:);

test2=data1(76:100,:);

test=[test1

test2];

lth=zeros(50,50);

sample_m1=mean(sample1);

sample_m2=mean(sample2);

m1=sample_m1';

m2=sample_m2';

sb=(m1-m2)*(m1-m2)';

s1=zeros(2);

for n=1:25

temp = (sample1(n,:)'-m1)*(sample1(n,:)'-m1)';

s1=s1+temp;

end;

s2=zeros(2);

for n=1:25

temp = (sample2(n,:)'-m2)*(sample2(n,:)'-m2)';

s2 = s2+temp;

end;

sw=s1+s2;

vw=inv(sw)*(m1-m2);

a_m1 = vw'*m1;

a_m2 = vw'*m2;

w0 = (a_m1+a_m2)/2;

for n=1:50

if(vw'*test(n,:)' - w0>0)

m1(n,:)=1;

else

m1(n,:)=2;

end;

end;

m1;

count1=0;

count2=0;

for n=1:25

if m1(n,:)==sp_l(n,:)

count1=count1+1;

else

n

end

if m1(n+25,:)==sp_l(25+n,:)

count2=count2+1;

else

n+25

end

end

class1_rate=count1/25

class2_rate=count2/25

plot(sample(1:25,1),sample(1:25,2),'r.'); hold on ;

plot(test(1:25,1),test(1:25,2),'b.');

plot(sample(26:50,1),sample(26:50,2),'m.'); plot(test(26:50,1),test(26:50,2),'g.');

x1 = [-2:0.01:4];

y1 = x1*vw(2)/vw(1);

plot(x1,y1);

1.3 Fisher线性判别实验运行结果class1_rate =

0.8000

class2_rate =

0.8400

二、近邻法

邻近法最初由Court 和Hart 于1968年提出的。它是一种理论上比较成熟的方

法,也是一种简单、有效、非参数的机器学习算法之一,并且取得了较好的效果.。其基本思想是在训练样本中找到测试样本的最近邻,然后根据这个最近邻样本的类别来决定测试样本的类别,如图1所示。邻近法算法所选择的邻居都是已经正确分类的对象。邻近法虽然从原理上也依赖于极限定理,但在类别决策时,只与最相邻的样本有关。

该算法在分类时的不足主要有:如果样本数目太少,样本的分布可能会带有很大的偶然性,不一定能很好地代表数据内的分布情况,此时就会影响最近邻法的性能。该方法的另一个不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的最近邻点。

如果写成判别函数的形式,i w 类的判别函数可以写作:

1,...,(),

min ()k k i c

g x x i g x ω==

∈则 (6)

决策规则为各类的判别函数比较大小,即

1,...,(),

min ()k k i c

g x x i g x ω==

∈则 (7)

相关文档
最新文档