24小时热门版块排行榜    

CyRhmU.jpeg
查看: 794  |  回复: 2

qdairman

新虫 (初入文坛)

[求助] 关于PCA的问题已有1人参与

最近又在看PCA,发现问题
X为N*M,N个样本,M维数据
sigma=X'*X;
PCA可以用SVD分解
1.在matlab中
[U,S,V]=svd(X);
因为X=UDV';X'*X=VDU'UDV';求出V的前几个最大特征值对应的特征向量等于求sigma的特征向量,再进行投影
2.对sigma求特征值,特征向量
[a,b]=eig(sigma);
3.但是为什么会有这个?
[U,S,V]=svd(sigma);
求出U的前几个最大特征值对应的特征向量,再投影,没有看懂。。。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yuanmd

至尊木虫 (知名作家)

衔头义定自

【答案】应助回帖

感谢参与,应助指数 +1
如果你只是为了求V,其实结果是一样的!
做PCA,首先X要零均值化;第3个求出来的U和V是一样的,因为sigma是对称的,所以第3个求出的U和S和第1个求出的U和S是不一样的。另外如果sigma有点不对称的话,第2个算出来的结果是复数,所以经常在eig之前要加一个sigma=(sigma+sigma')/2; 第一种求法在高维小样本的时候,挺快的而且稳定。当然还有其它更快的方法,尤其是在高维小样本的时候,即先算小矩阵(样本的归一化核矩阵),然后再投影到高维。
梦想总是要有的,万一实现了呢?
2楼2014-11-24 23:43:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qdairman

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by yuanmd at 2014-11-24 23:43:28
如果你只是为了求V,其实结果是一样的!
做PCA,首先X要零均值化;第3个求出来的U和V是一样的,因为sigma是对称的,所以第3个求出的U和S和第1个求出的U和S是不一样的。另外如果sigma有点不对称的话,第2个算出来的 ...

好的,谢谢
3楼2014-11-25 09:44:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 qdairman 的主题更新
信息提示
请填处理意见