2017-12-22 8 views
1

私はk平均アルゴリズムの実装を視覚化するためにPCAを使用しようとしています。私はthis linkの主成分係数、スコア、分散についてのチュートリアルに従っています。第2度のpcaに新しい点を投影MATLAB

私は次のコマンドを使用しています:[coeff,score,~]=pca(X');ここで、Xは自分のデータです。

私のデータは30個の455個のマトリックスで、30個のフィーチャーと455個のサンプルがあります。私は正常にスコアパラメータを使用して、視覚化の目的で2Dプロットを作成しました。今私はその平面に30次元の中心を投影したい。私はcoeff*centers(:,1)を試しましたが、これが正しい使用法であるかどうかはわかりません。

新しい30次元点を第1のpcaコンポーネントと第2のpcaコンポーネントの2Dに投影するにはどうすればよいですか?

答えて

2

私はcenters(:, 1)であなたは新しい観測を意味すると仮定します。主成分で、この観察を表現するために、あなたは、デフォルトのセンターでpca()ため、データを平均値を減算する必要が

[coeff, score, ~, ~, ~, mu]=pca(X'); %return the estimated mean "mu" 
tmp = centers(:, 1) - mu'; %remove mean since pca() by default centers data 
coeff' * tmp; % the new observation expressed in the principal components 

ノートを書く必要があります。また、coeffの転置'に注意してください。実際にはinv(coeff)でなければなりませんが、coefforthogonal matrixなので、代わりに転置を使用できます。

+0

'centers(:, 1)'は、k-meansの中心を表します。私はその中心がどこにある2Dで視覚化したいですか? – havakok

+0

pcaを使用する前にデータを正規化して中心に置いた場合でも、新しい点から平均を引く必要がありますか? – havakok

+0

データがすでにセンタリングされている場合は、「mu」を減算する必要はありません。 「mu」がゼロであることをチェックすることによって、データが中央に位置していることを確認することができます。 'mu'は' mean(X ') 'とちょうど同じです。 – tuntap

関連する問題