模式识别fisher判别

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

相关文档
最新文档