私は現在、PCA でいくつかのことを試していますが、各固有値の原因となる機能を知ることは非常に重要です。
numpy.linalg.eig
既にソートされた対角行列が得られますが、この行列を元の位置に配置したかったのです。誰も私がそれを作ることができる方法を知っていますか?
Sven がコメントで述べたことは正しいです。固有値の「デフォルト」の順序はありません。各固有値は固有ベクトルに関連付けられており、固有値と固有ベクトルのペアが正しく一致していることが重要です。すべての言語とパッケージがそうすることがわかります。
したがって、R が eigenvalues[e1,e2,e3
と eigenvectorsを与える場合、python はおそらく (たとえば) and[v1,v2,v3]
を与えるでしょう。[e3,e2,e1]
[v3,v2,v1]
固有値は、データの分散がそれに関連付けられた固有ベクトルによってどの程度説明されるかを示していることを思い出してください。したがって、PCA で役立つ固有値の自然な並べ替え (これは私たちにとって直感的です) は、サイズ (昇順または降順) によるものです。こうすることで、固有値を簡単に見て、保持するもの (ほとんどのデータを説明するので大きい) とスローするもの (小さい、高周波の特徴または単なるノイズである可能性があります) を特定できます。
(答えではありませんが、このコメントには高度な書式設定が必要です。)
あなたが望む順序を指定する必要があります。たとえば、この行列の固有値
/ 0 1 \
A = | |
\ 1 0 /
+1
およびであり-1
、固有ベクトル(1 1)
およびに対応し(1 -1)
ます。これらの固有値をどのように並べたいですか? またその理由は?