gpt4 book ai didi

python - 如何在 Python 中使用 PCA/SVD 进行特征选择和识别?

转载 作者:行者123 更新时间:2023-12-05 05:28:06 26 4
gpt4 key购买 nike

我正在关注 Principal component analysis in 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 .如果有人不知道,请告诉我:)

最佳答案

我的错误印象是 PCA 进行的是特征选择,而它进行的是特征提取

相反,PCA 创建了一系列新的特征,每个特征都是输入特征的组合。

在 PCA 中,如果您真的想进行特征选择,您可以查看输入特征在 PCA 创建的特征上的权重。例如,matplotlib.mlab.PCA 库在属性 ( more on library) 中提供权重:

from matplotlib.mlab import PCA
res = PCA(data)
print "weights of input vectors: %s" % res.Wt

听起来特征提取路线是使用 PCA 的方式。

关于python - 如何在 Python 中使用 PCA/SVD 进行特征选择和识别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14205941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com