声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2994|回复: 6

[人工智能] 主成份分析的matlab程序 出错了

[复制链接]
发表于 2008-10-10 11:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
对输入进行主成份分析的过程中,我遇到了这样的难题:
  利用原数据进行实验,结果还可以接受,如果利用主成份分析后取样本,结果就变的不靠谱,我猜想是主成份分析出现了错误,现将主成份分析的matlab 代码拷出,希望能得到大家的指点。


X=load('data.txt');               
%==========求标准化后的协差矩阵,再求特征根和特征向量=================
%标准化处理
[p,n]=size(X);
for j=1:n
    mju(j)=mean(X(:,j));  %平均值
    sigma(j)=sqrt(cov(X(:,j)));  % cov( )是协方差的意思
end
for i=1:p
    for j=1:n
        Y(i,j)=(X(i,j)-mju(j))/sigma(j);
    end
end  
sigmaY=cov(Y);   %样本相关系数矩阵(相当于下例中的 R=corrcoef(X))
%求X标准化的协差矩阵的特征根和特征向量
[T,lambda]=eig(sigmaY);
disp('特征根(由小到大):');
disp(lambda);
disp('特征向量:');
disp(T);
%方差贡献率;累计方差贡献率
Xsum=sum(sum(lambda,2),1);
for i=1:n
    fai(i)=lambda(i,i)/Sxum;
end
for i=1:n
    psai(i)= sum(sum(lambda(1:i,1:i),2),1)/Sxum;
end
disp('方差贡献率:');
disp(fai);
disp('累计方差贡献率:');
disp(psai);      
Y=TT*X;(TT为T中累计贡献率超过90%的一部分)
回复
分享到:

使用道具 举报

发表于 2008-10-13 07:41 | 显示全部楼层
你自己都是猜的,别人怎么帮你看呢?
 楼主| 发表于 2008-10-14 11:16 | 显示全部楼层
什么意思?  我要是知道错在哪  还用猜想吗?
发表于 2008-10-15 08:39 | 显示全部楼层
主成分分析为什么不用现成的函数呢?

1.princomp
    功能:主成分分析
    格式:PC=princomp(X)
              [PC,SCORE,latent,tsquare]=princomp(X)
    说明:[PC,SCORE,latent,tsquare]=princomp(X)对数据矩阵X进行主成分分析,给出各主成分
   (PC)、所谓的Z-得分(SCORE)、X的方差矩阵的特征值(latent)和每个数据点的HotellingT2统计
   量(tsquare)。

2.pcacov
    功能:运用协方差矩阵进行主成分分析
    格式:PC=pcacov(X)
              [PC,latent,explained]=pcacov(X)
    说明:[PC,latent,explained]=pcacov(X)通过协方差矩阵X进行主成分分析,返回主成分(PC)、协方
   差矩阵X的特征值(latent)和每个特征向量表征在观测量总方差中所占的百分数(explained)。

3.pcares
    功能:主成分分析的残差
    格式:residuals=pcares(X,ndim)
    说明:pcares(X,ndim)返回保留X的ndim个主成分所获的残差。注意,ndim是一个标量,必须小于X
   的列数。而且,X是数据矩阵,而不是协方差矩阵。

4.barttest
    功能:主成分的巴特力特检验
    格式:ndim=barttest(X,alpha)
              [ndim,prob,chisquare]=barttest(X,alpha)
    说明:巴特力特检验是一种等方差性检验。ndim=barttest(X,alpha)是在显著性水平alpha下,给出
满足数据矩阵X的非随机变量的n维模型,ndim即模型维数,它由一系列假设检验所确定,ndim=1表
明数据X对应于每个主成分的方差是相同的;ndim=2表明数据X对应于第二成分及其余成分的方差是
相同的。
 楼主| 发表于 2008-10-15 11:13 | 显示全部楼层
也对 试试看
发表于 2008-12-3 15:31 | 显示全部楼层
知之甚少,看来还得多学习
发表于 2008-12-22 15:29 | 显示全部楼层

回复 地板 frogfish 的帖子

楼上所说的这些函数是在专门的工具箱中么?请指教!另外我想问一下,就是主成分分析中怎样设定主成分的个数问题?谢谢!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-23 19:25 , Processed in 0.056425 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表