python PCA方法

标签 python pca

我需要找到与 2 个主成分具有最大相关性的特征。 这是训练任务,结果是错误的(所有 4 个分量与 1 个分量有更多相关性)

from sklearn import datasets

iris = datasets.load_iris()
data = iris.data
target = iris.target
target_names = iris.target_names
means,  = np.mean(data, axis=0), 
X = (data - means)

from sklearn.decomposition import PCA
model = PCA(n_components=2)
model.fit(X)
proect_data = model.transform(X)
proect_data_abs = np.absolute(proect_data)
means,  = np.mean(proect_data_abs, axis=0), 
Y = (proect_data_abs - means)
corr_array = np.corrcoef(X.T, Y.T)

最佳答案

您没有提供任何理由来说明为什么取转换后数据的绝对值,并且非常不清楚为什么这样做。

如果删除该部分,则无需再次减去均值,您将获得预期的结果,并且很容易读出哪些特征与主成分具有最高的相关性:

Y = proect_data
corr_array = np.corrcoef(X.T, Y.T)
corr_array[4:,:4]

array([[ 0.89754488, -0.38999338,  0.99785405,  0.96648418],
       [ 0.39023141,  0.82831259, -0.04903006, -0.04818017]])

关于python PCA方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46469340/

相关文章:

python - 关于python虚拟环境的问题

python - FrameSelected 不工作

r - 如何使用 Prcomp 在 R 中提取 PCA 的摘要作为数据框?

python - 在 scikit-learn 中查找和利用来自 PCA 的特征值和特征向量

python - 为什么这个类变量在不同的实例中是相同的?

python - Blender 更改了我的对象的名称

python - 为什么 IPython 不为我编写的模块提供完整的回溯?

apache-spark - PCA 输入错误参数超过 65535

python - 使用 PCA 时出现数学域错误

r - R 中任何简单的 EigenFaces 分类代码