模式识别大作业1

2019-08-31 14:05

模式识别大作业

学号:021151** 姓名:** 任课教师:张**

--fisher线性判别和近邻法

I. Fisher线性判别

A. fisher线性判别简述

在应用统计方法解决模式识别的问题时,一再碰到的问题之一是维数问题.在低维空间里解析上或计算上行得通的方法,在高维里往往行不通.因此,降低维数就成为处理实际问题的关键.

我们考虑把d维空间的样本投影到一条直线上,形成一维空间,即把维数压缩到一维.这样,必须找一个最好的,易于区分的投影线.这个投影变换就是我们求解的解向量w*.

B.fisher线性判别的降维和判别

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

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

Mi?1nixk?Xi?xk,i?1,2 (1)

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

mi?1niyk?Yi?yk,i?1,2 (2)

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

Si2?yk?Yi?(yk?mi)2,i?1,2 (3)

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

JF(w)?|m1?m2|2s12?s22 (4)

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

F2.求解w

*从JF(w)的表达式可知,它并非w的显函数,必须进一步变换。 已知:

mi?mi?1niyk?Yi?yk,i?1,2, 依次代入上两式,有:

1TT1T,i?1,2 (5) wx?w(x)?wM?knx?kinixk?Xiik?Xi2TT2T2|m?m|?||wM?wM||?||w(M?M)||121212所以:

TTT ?w(M1?M2)(M1?M2)w?wSbw (6)

其中:Sb?(M1?M2)(M1?M2) (7)

Sb是原d维特征空间里的样本类内离散度矩阵,表示两类均值向量之间的离散度大小,

T因此,Sb越大越容易区分。

T将(4.5-6)mi?wMi和(4.5-2)

Mi?1nixk?Xi?xk代入(4.5-4)S式中:

2iSi2?xk?Xi?(wxTk?wTMi)2

?wT?xk?Xi?(xk?Mi)(xk?Mi)T?w?wTSiw (8)

其中:

Si?xk?Xi?(xk?Mi)(xk?Mi)T,i?1,2 (9)

22TTS?S?w(S?S)w?wSww (10) 1212因此:

显然:Sw?S1?S2 (11)

Sw称为原d维特征空间里,样本“类内离散度”矩阵。

Sw是样本“类内总离散度”矩阵。

为了便于分类,显然Si越小越好,也就是Sw越小越好。 将上述的所有推导结果代入JF(w)表达式: 可以得到:

w*???1?Sw(M1?M2)?其中,?是一个比例因子,不影响w的方向,可以删除,从而得到最

*后解:

w*?Sw(M1?M2)?1 (12)

*就使JF(w)取得最大值,w可使样本由d维空间向一维空间映射,其投影方向最好。

w*?Sw(M1?M2)?1是一个Fisher线性判断式.这个向量指出了相对于Fisher准则函数最好的投影

线方向。 C.算法流程图

左图为算法的流程设计图。

II.近邻法

A. 近邻法线简述

K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。

将与测试样本最近邻样本的类别作为决策的结果。对一个C类别问题,每类有Ni个样本,i?1,2,?C,则第i类?i的判别函数为:

gi(x)?min||x?xik||,k?1,2,?,Ni (1)

k因此,最近邻决策规则:

若 gj(x)?mingi(x),i?1,2,?c (2)

i则决策 x??j

III. 实验仿真

实验设计: 1)实验内容

对下列数据进行判别。在每一类里面随机选一半作为训练样本,另一半作为测试样本。来判别属于第一类的是否都正确,属于第二类中是否都属于第二类。

文件名 Sonar.xls Wdbc.data 类别数

2 2 维数 60 30 样本数 208 569

用fisher判别法和对这两组数据进行判别。 B.代码设计 1.fisher判别

%%

clc, clear;

M = xlsread('E:\\power\\专业课程\\大作业们\\sonar.xls'); %读取数据

sum1 = 0; sum2 = 0;

for iii=1:10

[aa, bb] = size(M); num1 = 1; num2 = 1; for n=1:aa if M(n, bb)==1

Data1(num1,:) = (M(n, 1:bb-1)); num1 = num1+1; else

Data2(num2,:) = (M(n, 1:bb-1)); num2 = num2+1; end end

d1=Data1( randsample([1:num1-1],floor(num1/2)), :); d2=Data2( randsample([1:num2-1],floor(num2/2)), :); m1 = mean(d1); m2 = mean(d2);

S1 = zeros(bb-1,bb-1); for ii = 1:floor(num1/2)

S1 = S1 + (d1(ii,:)-m1)' * (d1(ii,:)-m1); end

S2 = zeros(bb-1,bb-1); for ii = 1:floor(num2/2)

S2 = S2 + (d2(ii,:)-m2)' * (d2(ii,:)-m2); end

Sw = S1+S2;

w = inv(Sw) * (m1 - m2)';

for ii=1:floor(num1/2) dd1(ii)= w'* d1(ii,:)'; end

for ii = 1:floor(num2/2) dd2(ii)= w'* d2(ii,:)';


模式识别大作业1.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:小数四则混合运算和应用题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: