模式识别最近邻和fisher分类matlab实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)