0

各列が異なる時点を表し、各行が特徴を表す行列 (C) で PCA を実行しようとしています。上位の主成分を見つけて、それらを互いにグラフ化しようとしています。私は mdp モジュールを使用していますが、このモジュールが、各行が最も重要な成分を降順に並べた主成分を表す行列を返す場合、混乱します。

import mdp
C=mdp.pca(C)
print C

import matplotlib.pyplot as plt

plt.plot(C[2,:C.shape[1]], C[1,:C.shape[1]], 'r*')
plt.show()

ありがとうございました!

4

1 に答える 1

1

mdp.pcaのmdpドキュメントから:

pca(x、** kwargs)主成分を介してmultidimensioanl入力データをフィルタリングします。

同じ変数の観測値は行に格納され、異なる変数は列に格納されます。

これは、対応するノードnodes.PCANodeのショートカット関数です。キーワード引数が指定されている場合、それらはコンストラクターに渡されます。

これは、mdp.nodes.PCANode(** kwargs)(x)と同等です。

これを分解するには、キーワード引数をに送信PCANodeしてコンストラクターを設定し、そのメソッドを使用することを意味します。このメソッドは、ドキュメントに__call__よると、実際にはそのメソッドを呼び出し、次のことを行います。PCANodeexecute

execute(self、x、n = None)

最初の「n」主成分に入力を投影します。'n'が設定されていない場合は、使用可能なすべてのコンポーネントを使用してください。

したがって、上記のように、射影の行列が得られます(行の同じ変数、列の異なる変数の観測値)

于 2012-08-25T00:12:55.903 に答える