典型相关分析CCA附算法应用与程序文件.docx
- 文档编号:26630595
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:13
- 大小:116.75KB
典型相关分析CCA附算法应用与程序文件.docx
《典型相关分析CCA附算法应用与程序文件.docx》由会员分享,可在线阅读,更多相关《典型相关分析CCA附算法应用与程序文件.docx(13页珍藏版)》请在冰豆网上搜索。
典型相关分析CCA附算法应用与程序文件
典型相关分析
摘要
利用典型相关分析的思想,提出了解决了当两组特征矢量构成的总体协方差矩阵奇异时,典型投影矢量集的求解问题,使之适合于高维小样本的情形,推广了典型相关分析的适用范围.首先,探讨了将典型分析用于模式识别的理论构架,给出了其合理的描述.即先抽取同一模式的两组特征矢量,建立描述两组特征矢量之间相关性的判据准则函数,然后依此准则求取两组典型投影矢量集,通过给定的特征融合策略抽取组合的典型相关特征并用于分类.最后,从理论上进一步剖析了该方法之所以能有效地用于识别的内在本质.该方法巧妙地将两组特征矢量之间的相关性特征作为有效判别信息,既达到了信息融合之目的,又消除了特征之间的信息冗余,为两组特征融合用于分类识别提出了新的思路.
1、典型相关分析发展的背景
随着计算机技术的发展,信息融合技术已成为一种新兴的数据处理技术,并已取得了可喜的进展.信息融合的3个层次像素级、特征级、决策级。
特征融合,对同一模式所抽取的不同特征矢量总是反映模式的不同特征的有效鉴别信息,抽取同一模式的两组特征矢量,这在一定程度上消除了由于主客观因素带来的冗余信息,对分类识别无疑具有重要的意义
典型相关分析(CanoniealComponentAnalysis:
CCA)是一种处理两组随机变量之间相互关系的统计方法。
它的意义在于:
用典型相关变量之间的关系来刻画原来两组变量之间的关系!
实现数据的融合和降维!
降低计算复杂程度。
2、典型相关分析的基本思像
CCA的目的是寻找两组投影方向,使两个随机向量投影后的相关性达到最大。
具体讲,设有两组零均值随机变量
和
CCA首先要找到一对投影方向
和
使得投影
和
之间具有最大的相关性,
和
为第一对典型变量;同
理,寻找第二对投影方向
和
得到第二对典型变量
和
使其与第一对典型变量不相关,且
和
之间又具有最大相关性。
这样下去,直到x与y的典型变量提取完毕为止。
从而x与y之间的相关性分析,只需通过分析少数几对典型变量的关系即可达到目的。
3、CCA算法详解
(1)
(2)
(3)
考虑到:
的极值只与
和
的方向有关,而与它们的大小无关,为了得到唯一解不失一般性,加入限制条件:
(4)
问题变为在约束条件式下,求使准则函数式取最大值的典型投影矢量对
和
求解上述优化问题,可定义拉格朗日函数:
(5)
分别对
和
求导数,并令为零,得到:
(6)
(7)
(8)
(9)
再对上式两端分别左乘和得:
记为:
(10)
(6)
(6)
(12)
(11)
(13)
对H进行奇异值分解:
令:
分别将
,
,…
与
,
,…
看做是变换后的特征分量:
(14)
(15)
(16)
投影后的组合特征用于分类,其中变换矩阵为:
(17)
4、典型相关分析应用实例
欲研究儿童形态与肺通气功能的关系,测得某小学40名8~12岁健康儿童(身高X1,体重X2,胸围X3)与肺通气功能(肺活量Y1,静息通气Y2和每分钟最大通气量Y3),分析儿童形态和肺通气指标的相关性,确定典型变量的对数。
x1=[140.6,135.7,140.2,152.1,132.2,147.1,147.5,130.6,154.9,142.4,136.5,162,
148.9,136.3,159.5,165.9,134.5,152.5,138.2,144.2];
x2=[43.7,39.5,48,52,36,45,47,38,48,42,38,58,42,33,49,55,41,53,35.5,42];
x3=[77,63,75,88,62,78,76,61,87,74,69,95,80,68,87,93,61,83,66,76];
y1=[2.6,2,2.6,2.8,2.1,2.8,3.1,2,2.9,2.33,1.98,3.29,2.7,2.4,2.98,3.1,2.25,2.96,
2.13,2.52];
y2=[7,7,6.1,10.1,7.4,9.25,8.78,5.31,10.6,11.1,7.77,3.35,10.1,7.8,11.77,13.14,
8.75,6.6,6.62,5.59];
y3=[108,91,101,112,97,92,95,77,80,76,49,58,82,76,88,110,75,71,105,82];
(1)仿真结果分析结:
(实验平台:
Matlab2014,程序见附录)
R1=0.9282
R2=0.5302
R3=0.0081
R1=0.9282
R2==0.5302
R3=0.0081
(2)结果分析:
三幅分别对应不同特征值所对应的儿童形态与肺通气功能的关系,
显然,第一幅图的线性关系最好,即儿童形态与肺通气功能的相关性最大,变化趋势一致,进行特征融合以达到降维的目的。
六、心得体会
通过本次大作业,对小样的典型相关分析查阅了很多文献,对文献的阅读的辨别能力有了很大提升,抓住文献中的重点要点,进行深一步的理解;其次在程序的编写中,CCA的编写从原理到算法解析再到算法的逻辑结构,一步步的将CCA的思想理解透彻并体现在MATLAB的程序中,在程序编写的过程中也遇到了很多挫折和编译失败的困惑,但是通过网上查阅和向教员请教以及同学的询问,一一得到解决,最终完成了本次大作业的撰写,其中也收获到了很多东西,学到了很多,希望以后能扎实学习,更进一步。
附录:
clearall
clc
x1=[140.6,135.7,140.2,152.1,132.2,147.1,147.5,130.6,154.9,142.4,136.5,162,148.9,136.3,159.5,165.9,134.5,152.5,138.2,144.2];
x2=[43.7,39.5,48,52,36,45,47,38,48,42,38,58,42,33,49,55,41,53,35.5,42];
x3=[77,63,75,88,62,78,76,61,87,74,69,95,80,68,87,93,61,83,66,76];
y1=[2.6,2,2.6,2.8,2.1,2.8,3.1,2,2.9,2.33,1.98,3.29,2.7,2.4,2.98,3.1,2.25,2.96,2.13,2.52];
y2=[7,7,6.1,10.1,7.4,9.25,8.78,5.31,10.6,11.1,7.77,3.35,10.1,7.8,11.77,13.14,8.75,6.6,6.62,5.59];
y3=[108,91,101,112,97,92,95,77,80,76,49,58,82,76,88,110,75,71,105,82];
mx1=sum(x1)/20;
mx2=sum(x2)/20;
mx3=sum(x3)/20;
my1=sum(y1)/20;
my2=sum(y2)/20;
my3=sum(y3)/20;
d=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];
x1=x1-mx1.*d;
x2=x2-mx2.*d;
x3=x3-mx3.*d;
y1=y1-my1.*d;
y2=y2-my2.*d;
y3=y3-my3.*d;
%b=imread('1.jpg');
%a=imread('2.jpg');
%c=rgb2gray(a);
%d=rgb2gray(b);
%c=double(imresize(c,[128,128]));
%d=double(imresize(d,[128,128]));
%zushu=size(X,1);
A=[x1',x2',x3'];
B=[y1',y2',y3'];
[Wx,Wy,r,n,m]=CCA_algorithm(A,B);
%CCA_zq.(Z,zushu,2)
Z=Wx
Y=Wy
U1=Wx(:
1);
U2=Wx(:
2);
U3=Wx(:
3);
V1=Wy(:
1);
V2=Wy(:
2);
V3=Wy(:
3);
figure
(1);
plot(U1,V1,'*');
figure
(2);
plot(U2,V2,'r*');
figure(3);
plot(U2,V2,'g^')
%CCA函数调用:
function[U,V,nmuta,nmutatwo,U_replace,V_replace]=CCA_algorithm(X,Y)
%计算典型相关分析的程序
n=size(X,1);
p=size(X,2);
q=size(Y,2);
X=X-repmat(mean(X,1),n,1);
Y=Y-repmat(mean(Y,1),n,1);
Z=[XY];
Covz=cov(Z);
S11=Covz(1:
p,1:
p);
S22=Covz(p+1:
end,p+1:
end);
S12=Covz(1:
p,p+1:
end);
%S21=Covz(p+1:
end,1:
p);
S21=S12';
k=1;
Ip=eye(p);
Iq=eye(q);
ifrank(S11)~=p
S11=S11+k*Ip;
end
ifrank(S22)~=q
S22=S22+k*Iq;
end
%避免出现复数,不使用S11^(-1/2)
K=S11^(-1/2)*S12*S22^(-1/2);
d=rank(K);
[U1,S1,V1]=svd(K,0);
U2=U1(:
1:
d);
V2=V1(:
1:
d);
A=S11^(-1/2)*U2;
B=S22^(-1/2)*V2;
%A=S11^(1/2)\U2;
%B=S22^(1/2)\V2;
U=X*A;
V=Y*B;
nmuta=diag(S1);
nmuta=nmuta(1:
d);
%使用下面的效果是一样的
M1=inv(S11)*S12*inv(S22)*S21;
M2=inv(S22)*S21*inv(S11)*S12;
[V1,D1]=eig(M1);
[V2,D2]=eig(M2);
%归一化
gu1=V1'*S11*V1;
gu1=1./sqrt(diag(gu1));
gu1=repmat(gu1',p,1);
a=V1.*gu1;
gu2=V2'*S22*V2;
gu2=1./sqrt(diag(gu2));
gu2=repmat(gu2',q,1);
b=V2.*gu2;
d1=size(find(diag(D1)~=0),1);
%对特征值自动排序的,由大到小%d1=min(max(diag(D1),0),1);
d2=size(find(diag(D2)~=0),1);
dd=min(d1,d2);
Utwo=a(:
1:
dd);
Vtwo=b(:
1:
dd);
nmutatwo=sqrt(diag(D1));%已经取过平方根了
nmutatwo=nmutatwo(1:
dd);
A1=Utwo;
B1=Vtwo;
U_replace=X*A1;
V_replace=Y*B1;
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 典型 相关 分析 CCA 算法 应用 程序 文件