23

pca を使用して、特定のデータ セットの分散が最も高い次元を特定する必要があります。scikit-learn の pca を使用してそれを実行していますが、pca メソッドの出力から、分散が最も高いデータのコンポーネントを特定できません。私はそれらの次元を排除したくないことを心に留めておいてください。それらを特定するだけです。

私のデータは、それぞれが 4 次元の 150 行のデータを含むマトリックスとして編成されています。私は次のようにやっています:

pca = sklearn.decomposition.PCA()
pca.fit(data_matrix)

pca.explained_variance_ratio_を印刷すると、最高から最低の順に並べられた分散比の配列が出力されますが、対応するデータの次元はわかりません (マトリックスの列の順序を変更しようとしましたが、結果の分散比配列は同じでした)。

pca.components_を印刷すると、意味を理解できないいくつかの値を含む 4x4 マトリックス (コンポーネントの元の数を pca の引数として残しました) が得られます... scikit のドキュメントによると、それらは最大分散を持つコンポーネントである必要があります(おそらく固有ベクトル?)、しかし、それらの値がどの次元を参照しているかの兆候はありません。

データを変換しても役に立ちません。ディメンションが変更されて、元のディメンションがどれだったのか本当にわからないからです。

scikit の pca でこの情報を取得する方法はありますか? ありがとう

4

1 に答える 1

21

返される pca.explained_variance_ratio_ は、主成分からの分散です。それらを使用して、データを pca でより適切に変換できる次元 (コンポーネント) の数を見つけることができます。そのためにしきい値を使用できます (たとえば、0.5 より大きい分散の数などを数えます)。その後、使用したしきい値よりも高い主成分に等しい次元 (成分) の数を使用して、PCA によってデータを変換できます。これらの次元に縮小されたデータは、元のデータの次元に関するデータとは異なります。

このリンクからコードを確認できます。

http://scikit-learn.org/dev/tutorial/statistical_inference/unsupervised_learning.html#principal-component-analysis-pca

于 2013-03-13T03:10:41.143 に答える