Pythonで主成分分析に従ってPythonでPCAを使用していますが、選択する機能(つまり、どの列/機能が最も分散が大きいか)を決定するのに苦労しています。
を使用するscipy.linalg.svd
と、特異値が自動的にソートされるため、それらがどの列に属しているかわかりません。
コード例:
import numpy as np
from scipy.linalg import svd
M = [
[1, 1, 1, 1, 1, 1],
[3, 3, 3, 3, 3, 3],
[2, 2, 2, 2, 2, 2],
[9, 9, 9, 9, 9, 9]
]
M = np.transpose(np.array(M))
U,s,Vt = svd(M, full_matrices=False)
print s
特異値をソートせずにこれを実行する別の方法はありますか?
更新:少なくともMatlabフォーラムのこの投稿( http://www.mathworks.com/matlabcentral/newsreader/view_thread/241607)によると、これは不可能なようです。誰かが他のことを知っているなら、私に知らせてください:)