How do i obtain only the first principal component?

16 ビュー (過去 30 日間)
sidra
sidra 2013 年 10 月 1 日
回答済み: Andrew Knyazev 2018 年 8 月 12 日
For certain measurements i need to obtain only the numeric value of the first principal component from the matrix. Can someone please tell me how do i go about it?
  1 件のコメント
sidra
sidra 2013 年 10 月 23 日
Any suggestions?

サインインしてコメントする。

採用された回答

Jan
Jan 2013 年 10 月 23 日
編集済み: Jan 2013 年 10 月 23 日
I'm not sure, if I fully understand your question. I doubt however, that there is a straightforward method for calculating the eigenvector corresponding to the largest eigenvalue of the covariance matrix without calculating all eigenvalues first (at least not for non-sparse matrices).
If you want the first principal component of the (m x n)-matrix A containing m measurements as row vectors you would in general do the following:
A = randn(100, 20); % artificial sample matrix
c_A = cov(A);
[V, ~], eigs( c_A );
p_1 = V( :, 1 );
which gives you the direction of the first principal component in the variable p_1.
  1 件のコメント
sidra
sidra 2013 年 10 月 29 日
Thank you so much jan :)

サインインしてコメントする。

その他の回答 (1 件)

Andrew Knyazev
Andrew Knyazev 2018 年 8 月 12 日
https://www.mathworks.com/matlabcentral/fileexchange/48-lobpcg-m can be used as the method for calculating the eigenvector corresponding to the largest eigenvalue of the covariance matrix without calculating all eigenvalues, or even without explicitly calculating the covariance matrix itself.

カテゴリ

Help Center および File ExchangeDimensionality Reduction and Feature Extraction についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by