我正在遵循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。如果有人知道,请告诉我:)