正規化のためにmatlabのm行n列の行列にPrincipal Component Analysis(PCA)を実装する方法を知っている人はいますか?各カラムを仮定主成分分析m行n列の行列
2
A
答えて
4
サンプルである(つまり、あなたがn
サンプル寸法m
のそれぞれを持っている)、それはマトリックスA
に保存されている最初のカラムから減算しなければならないことを意味:その後
Amm = bsxfun(@minus,A,mean(A,2));
あなた(あなたは公平な共分散行列としてinterpetationをしたい場合は、スケールファクタとして1/(size(Amm,2)-1)
を使用することができます)1/size(Amm,2)*Amm*Amm'
に固有値分解をしたいと:
[v,d] = eig(1/size(Amm,2)*Amm*Amm');
とCo v
の欄があなたのPCAベクターになります。 d
のエントリは、対応する「差異」になります。
ただし、m
が巨大な場合は、Amm*Amm'
を保存することは実際的でないため、これは最善の方法ではありません。
[u,s,v] = svd(1/sqrt(size(Amm,2))*Amm,'econ');
u
があなたのPCAベクトルが含まれているこの時間は:あなたが代わりに計算したいです。 s
のエントリはd
のエントリにsqrt
で関連付けられています。
注:m
が巨大な場合、つまりeig(1/size(Amm,2)*Amm '*Amm);
(上記と比較して転置が切り替わることに気付く)が少しトリッキーになる場合は別の方法がありますが、それ以上の説明ではわかりません。
関連する問題
- 1. 任意のN * M行列を部分行列の等しい部分に分割する
- 2. 主成分分析
- 3. Cの主成分分析#
- 4. PCLの主成分分析
- 5. ade4パッケージ - 主成分分析
- 6. Python - 主成分分析
- 7. 主成分分析と回転
- 8. 主成分分析:減速回転
- 9. matlabの行列(m x n)の変更
- 10. N行とM列の行列をN行列に分解するにはどうしたらよいですか?
- 11. 主成分分析を行うことによる遺伝的アルゴリズム - Reg
- 12. ベクタライズ分()行列
- 13. 動的にm(列)チェス盤でn(行)を生成する
- 14. N個の部分行列をnumpyでNxN行列にコンパイルする
- 15. 行列の半分から対角行列を作成する
- 16. JavaでのM * N行列のインプレース行列転置は不可能ですか?
- 17. R:空のリストでm行n列の行列を初期化する
- 18. 主成分分析の最も重要な元の特徴
- 19. 主成分分析は、Pythonを使用して3d配列を1d配列に変換します
- 20. サンプル共分散行列の生成R
- 21. Matlabの:信号に対して主成分分析(スペクトルアンミキシング)
- 22. PCA(主成分分析)と機能選択の相違
- 23. スパーク - 主成分分析 - PCAは多くの主成分を必要とするが、0を与えられた。
- 24. Proc GLMの分散共分散行列
- 25. 予測中に主成分分析を使用する方法
- 26. 主成分分析が機能しない
- 27. パイプラインで主成分分析とサポートベクターマシンを組み合わせる
- 28. n * m行列のすべての列の組み合わせでm * mの結果を返す関数
- 29. Python共分散行列は、N、Nの代わりに2N、2N行列を返します。
- 30. 共分散行列を持つ正規分布ランダムベクトルの生成
華麗なブレークダウンと説明+1! –