课程设计题目。
设计基于k-l变换的特征提取算法,编写程序,分析实验结果,提交报告一份。
报告内容包括: (1)基于k-l变换的特征提取算法的原理;(10分)
2)基于k-l变换的特征提取算法的步骤;(20分)
3)算法流程设计;(20分)
4)算法程序;(20分)
5)程序**;(20分)
6)结果分析。(10分)
一、基于k-l变换的特征提取算法的原理。
k-l变换的定义:将一组离散信号变换为不相关数列的变换方法称为hotelling变换。由于是是和等人提出将连续信号变换为一组不相关数列的,所以也将hotelling变换称为k-v变换。
k-v变换是一种基于目标统计特征的最佳正交变换。它具有一些优良的性质:即变换后产生的矢量更趋确定,能量更集中。
这一方法的目的是寻找任意统计分布的数据集合之主要分量的子集。
设n维矢量x=[x1,x2,x3…],其均值矢量u=e[x],协方差矩阵c=e[(x-u)(x-u)*]此协方差矩阵为对称正定阵,则通过正交分解表示为cx=uaut其中a=diag[1, 2,..u=[u1,u2,..为对应特征值的特征向量组成的变换矩阵,且满足u-1=ut。
变换矩阵ut为旋转矩阵,在此变换矩阵下x变换为y=ut(x-u),在新的真交基空间中,相应的协方差矩阵cx=ucxu=diag[..通过滤应于若干较小特征值的特征向量来给y降维然后进行处理。通常情况下特征值幅度差别很大,忽略一些较小的值并不会引起大的误差。
2、基于k-l变换的特征提取算法的步骤。
1、计算样本的均值u=e[x]和协方差矩阵c=e[(x-u)(x-u)t];
均值。协方差矩阵
2、计算协方差矩阵cx的特征值和特征向量;
为新的特征向量。
3、将样本按新的特征向量进行变换:y=ut(x-u),是数据从四维降到二维;
4、按最小错误率对降维数据进行分类,包括训练和测试。
三、算法流程设计。
1、将原始数据导入,有三类数据,每类20四维个数据;
2、求数据的均值和协方差;
3、对样本数据进行k-l变换,将原数据有四维数据变换为二维数据;
4、得到变换后的二维数据w_k_l;
5、将三组数据的前10个数据用来做样本训练;
6、求取样本数据的均值和协方差;
7、进行样本数据分类测试;
8、任意选取一类数据的后10位数据进行分类测试。
9、使用最小错误贝叶斯判别函数进行判别,判别函数如下:
g(x)=-0.5*(x-u)’*ut*(x-u)-0.5*log|u|
u为协方差,u为均值,x为测试数据;
10、测试数据分类使用t1,t2,t3记录测试数据的分类个数,即分类情况。
4、算法程序。
clear原始数据导入。
iris=load('c:\users\acer\desktop\模式识别\样本数据。txt')
n=60n=60个样本。
求样本均值。
for i=1:n
for j=1:4
w(i,j) =iris(i,j);
endend
sumx=sum(w,1);
for i=1:4
**(1,i)=sumx(1,i)/n;
end求样本协方差矩阵。
var(4,4)=0;
var=cov(w);
v,latent,explained]=pcacov(var);
v=fliplr(v对特征向量按特征值大小从小到大排序。
v(:,1:2去掉最小特征值对应的特征向量。
for i=1:60
w_k_l(i,:)w(i,:)**)*v; %对数据降维。
end求训练样本均值。
m=10;w1_k_l(:,w_k_l(1:m,:)
**1_k_l=sum(w1_k_l,1)/m;
w2_k_l(:,w_k_l(21:30,:)
**2_k_l=sum(w2_k_l,1)/m;
w3_k_l(:,w_k_l(41:50,:)
**3_k_l=sum(w3_k_l,1)/m;
求训练样本协方差矩阵。
var1_k_l=cov(w1_k_l);
var2_k_l=cov(w2_k_l);
var3_k_l=cov(w3_k_l);
var1_k_l_inv=inv(var1_k_l);
var2_k_l_inv=inv(var2_k_l);
var3_k_l_inv=inv(var3_k_l);
var1_k_l_det=det(var1_k_l);
var2_k_l_det=det(var2_k_l);
var3_k_l_det=det(var3_k_l);
进行数据测试。
a=0.5;b=0.5;c=0.5;
ceshi(:,w_k_l(11:20,:)
ceshi(:,w_k_l(31:40,:)
ceshi(:,w_k_l(51:60,:)
t1=0;t2=0;t3=0;
for i=1:10
x=ceshi(i,1);y=ceshi(i,2);%z=ceshi(i,3);
%g1=(-0.5)*(x,y,z]-**1_k_l)*var1_k_l_inv*([x,y,z]'-**1_k_l')-0.5*log(abs(var1_k_l_det));
%g2=(-0.5)*(x,y,z]-**2_k_l)*var2_k_l_inv*([x,y,z]'-**2_k_l')-0.5*log(abs(var2_k_l_det));
%g3=(-0.5)*(x,y,z]-**3_k_l)*var3_k_l_inv*([x,y,z]'-**3_k_l')-0.5*log(abs(var3_k_l_det));
g1=(-0.5)*(x,y]-**1_k_l)*var1_k_l_inv*([x,y]'-**1_k_l')-0.5*log(abs(var1_k_l_det));
g2=(-0.5)*(x,y]-**2_k_l)*var2_k_l_inv*([x,y]'-**2_k_l')-0.5*log(abs(var2_k_l_det));
g3=(-0.5)*(x,y]-**3_k_l)*var3_k_l_inv*([x,y]'-**3_k_l')-0.5*log(abs(var3_k_l_det));
if g2>g3
t2=t2+1;
elset3=t3+1;
endend
5、程序**。
1、取第一类样本数据的后10个,按w1,w2进行分类。
分类正确;取第二类样本数据的后10个,按w1,w2进行分类
分类真确;2、取第一类样本数据的后10个数据,按w1,w3进行分类。
分类正确;取第三类样本数据的后10个数据,按w1,w3进行分类。
分类正确;3、取第二类样本数据的后10个数据,按w2,w3进行分类。
一样本错分到第三类数据,其他分类正确;
取第三类数据的后10个数据,按w2,w3进行分类。
一样本错分到第三类数据,其他分类正确;
6、结果分析。
对于k-l变换,主要目的是减少计算量。提取主要特征量,去掉低分量在本设计中,实验数据为四维数据,通过k-l变换,降低维数,然后再进行分类测试。
1、将最小的一个特征值对应的特征向量去掉,则由四维降为三维,其新的变换矩阵为:
经变换后的向量在三维空间分布如图1
2、将最小的两个特征值对应的特征向量去掉,则由四维降为二维,其新的变换矩阵为:
经变换后的向量在二维空间分布如图2图1图2
由上分析可知经过k-l变换降维,其样本数据的空间分布依然呈现三类分布,由此可知k-l变换确实降低了数据的计算量,简化了数据处理,从四维数据到三维再到二维,依然保留了数据的主要特征。
在**阶段第二类和第三类数据分类出现一样本分类错误,其主要原因主要可能是,训练样本数据不足的原因,因为k-l变换没有确定的变换式,他与变换量有密切的关系,由训练样本训练得出变换矩阵。
附页1%图1绘图程序。
a=w_k_l(1:20,1);
b=w_k_l(1:20,2);
c=w_k_l(1:20,3);
plot3(a,b,c,'rd');
hold on;
d=w_k_l(21:40,1);
e=w_k_l(21:40,2);
f=w_k_l(21:40,3);
plot3(d,e,f,'b+')
hold on;
g=w_k_l(41:60,1);
h=w_k_l(41:60,2);
i=w_k_l(41:60,3);
plot3(g,h,i,'k*')
模式识别作业
6.题目 fisher分类和基于核的fisher分类的设计与实现研究。具体内容 1.简述fisher分类和基于核的fisher分类的算法原理 2.举出实例 3.用matlab软件编写程序实现 4.分析实验结果。fisher分类和基于核的fisher分类的设计与实现研究。1 fisher分类和基于核的...
模式识别作业
模式识别课程matlab程序作业。模式识别贝叶斯决策 正常状态细胞p 1 0.9,异常状态细胞p 2 0.1,类条件概率密度分别为p x 1 n 0,1 p x 2 n 0.2,1.5 现有一待识别细胞,其观察值为0.2,用matlab写出程序对该细胞进行分类。编写程序如下 close all cl...
模式识别作业
感知器训练算法。在设计贝叶斯分类器时需要设法获取样本统计分布的资料,应知道先验概率及类分布概率密度函数等。然而,在样本数不充足条件下要获取准确的统计分布是很困难的。这样,可以考虑另外一种分类器设计方法,即根据训练样本集提供的信息,直接进行分类器设计。下面实验是针对线性可分情况下的感知器算法。实验所用...