模式识别fisher判别
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
论文(设计)
《模式识别》
题目Fisher线性判别的基本原理及应用
Fisher判别准则
一、基本原理思想
Fisher线性判别分析的基本思想:通过寻找一个投影方向(线性变换,线性组合),将高维问题降低到一维问题来解决,并且要求变换后的一维数据具有如下性质:同类样本尽可能聚集在一起,不同类的样本尽可能地远。
Fisher线性判别分析,就是通过给定的训练数据,确定投影方向W和阈值y0,即确定线性判别函数,然后根据这个线性判别函数,对测试数据进行测试,得到测试数据的类别。
二、算法的实现及流程图
1 算法实现 (1)W 的确定
x 1m x, 1,2
i
i X i
i N ∈=
=∑各类样本均值向量mi
样本类内离散度矩阵和总类内离散度矩阵
T
x S (x m )(x m ), 1,2
i
i i i X i ∈=--=∑
样本类间离散度矩阵
T
1212S (m m )(m m )b =--
在投影后的一维空间中,各类样本均值
。样本类内离散度和总类内离散度
。样本类间离散度。
Fisher 准则函数满足两个性质:
·投影后,各类样本内部尽可能密集,即总类内离散度越小越好。 ·投影后,各类样本尽可能离得远,即样本类间离散度越大越好。
根据这个性质确定准则函数,根据使准则函数取得最大值,可求出W :。
(2)阈值的确定
采取的方法:【1】
【2】
【3】
(3)Fisher 线性判别的决策规则
对于某一个未知类别的样本向量x ,如果y=W T
·x>y0,则x ∈w1;否则x ∈w2。
2 流程图
归一化处理
载入训练数据
三、实验仿真
1.实验要求
试验中采用如下的数据样本集:
ω1类: (22,5),(46,33),(25,30),(25,8),(31, 3),(37,9),(46,7),(49,5),(51,6),(53,3)
(19,15),(23,18),(43,1),(22,15),(20,19),(37,36),(22,22),(21,32),(26,36),(23,39)(29,35),(33,32),(25,38),(41,35),(33,2),(48,37)
ω2类: (40,25),(63,33),(43,27),(52,25),(55,27),(59,22) ,(65,59),(63,27)
(65,30),(66,38),(67,43),(52,52),(61,49) (46,23),(60,50),(68,55) (40,53),(60,55),(55,55) (48,56),(45,57),(38,57) ,(68,24)
在实验中采用Fisher线性判别方法设计出每段线性判别函数。
2.算法程序(matlab编程)
%程序代码1在matlab中画出w1,w2类样本点
clear
clc
%w1,w2类两类样本点值
w1=[22,46,25,25,31,37,46,49,51,53,19,23,43,22,20,37,22,21,26,23,29,33,2 5,41,33,48;5,33,30,8,3,9,7,5,6,3,15,18,1,15,19,36,22,32,36,39,35,32,38, 35,2,37]';
N1=length(w1); %w1类样本点的个数
plot(w1(:,1),w1(:,2),'color','r','linestyle','none','marker','o','linew idth',1.5);
hold on;
w2=[40,63,43,52,55,59,65,63,65,66,67,52,61,46,60,68,40,60,55,48,45,38,6 8;25,33,27,25,27,22,59,27,30,38,43,52,49,23,50,55,53,55,55,56,57,57,24] ';
N2=length(w2); %w2类样本点的个数
plot(w2(:,1),w2(:,2),'color','b','linestyle','none','marker','+','linew idth',1.5);
hold on;
xlabel('x1');
ylabel('x2');
title('fisher准则的应用');
%程序代码2在matlab中画出w1,w2类样本点的投影方向
%计算w1,w2类的样本均值
average1=mean(w1);
average2=mean(w2);
%计算w1,w2类内离散度矩阵S1和S2和总类内离散度矩阵Sw
S1=zeros(2,2);
for i=1:N1
S1=S1+(w1(i,:)-average1)'*(w1(i,:)-average1); end
S2=zeros(2,2);
for j=1:N2
S2=S2+(w2(j,:)-average2)'*(w2(j,:)-average2); end
Sw=S1+S2;
%计算投影向量w
w=inv(Sw)*(average1-average2)';
%»³ö¹ýÔµãµÄͶӰÏß
k=w(2,1)/w(1,1);
x1=[-20:0.1:100];
x2=k*x1;
plot(x1,x2,'color','k');
hold on;
%程序代码3在matlab中画出w1,w2类样本点的投影点和分界线for i=1:N1
x1=(w1(i,1)+k*w1(i,2))/(k*k+1);
x2=k*x1;
plot(x1,x2,'color','r','marker','o');
end