私は行列Xを私含む、N = 20でサンプルをD = 100次元空間。次に、Matlabで自分の主成分分析(PCA)をコード化したいと思います。最初にXからX 0を降格します。
観測よりも次元が多いシナリオでは、の共分散行列をもはや固有分解しないという誰かのコードを読みました。代わりに、固有分解します1。なぜそれが正しいのですか?
通常の共分散行列のサイズは、その各要素は2次元間の共分散を示します。私にとって、1は正しい寸法ではありません!これはN×N行列なので、何を教えてくれるでしょうか。2つの観測間の共分散?!
(続き)もしそうなら、あなたは分解するものを自由に選択できます-それはより速く/より効率的に行うことであるものを分解するのが賢明です。ときに
—
ttnphns 2015
n<p
それが分解するより少ないRAMとあまり時間がかかりXX'
、それは小さいサイズであるため。
@ttnphns素晴らしい説明。私は今そのポイントを理解しています。しかし、私はまだ固有から
—
Sibbsギャンブル2015
XX'
PCに行く問題を抱えています。簡単に教えてください。PCは共分散行列の固有ベクトルだけであることを考えると、私はの固有値から移動しようとしたXX'
共分散行列の固有値にX'X
、しかし失敗しました。
私が行かなければならない。おそらく、@ amoeba(私よりも代数の方がはるかに俊敏です)または別の読者がすぐにここを調べて、あなたを助けるでしょう。乾杯。
—
ttnphns 2015
@ttnphns:完了:)
—
amoebaは、
X'X
とXX'
(同様のSVDX
とX'
)。ある場合には「ローディング」と呼ばれるものは、別の場合には「PCスコア」と呼ばれ、その逆も同様です。どちらも単なる座標(たとえばを参照)と軸なので、「主要な次元」は同じです。