Python 如何确保加载属于PCA中的变量

Python 如何确保加载属于PCA中的变量,python,machine-learning,scikit-learn,statistics,pca,Python,Machine Learning,Scikit Learn,Statistics,Pca,我使用以下代码对数据执行PCA: import pandas as pd from sklearn.decomposition import PCA # drop the 'memberid' column X = df[list(df.columns.difference(['memberid']))] pca = PCA(0.80).fit(X) Xpca = pca.transform(X) 然后,我计算每个主成分中最重要的贡献变量,如下所示: variables = df[list(d

我使用以下代码对数据执行PCA:

import pandas as pd
from sklearn.decomposition import PCA
# drop the 'memberid' column
X = df[list(df.columns.difference(['memberid']))]
pca = PCA(0.80).fit(X)
Xpca = pca.transform(X)
然后,我计算每个主成分中最重要的贡献变量,如下所示:

variables = df[list(df.columns.difference(['memberid']))].columns.values
uniqueVariables = []
uniqueIndices = []
for i in range(0,len(pca.explained_variance_ratio_)):
    # Grab the variable that falls in the 95th percentile of the loadings
    indices = [k for k in range(0,len(pca.components_[i])) if abs(pca.components_[i][k]) >= np.percentile(abs(pca.components_[i]),95)]
    for j in indices:
        uniqueVariables.append(variables[j])
在上面的代码中,我将所有变量名存储在
variables
中。然后我选择了变量的指数,在这个指数中,荷载落在第95百分位之后(换句话说,对主成分贡献最大的变量)

我现在尝试绘制每个主成分的荷载图(此处仅显示1,例如,第三个主成分,由索引2标识):

在这里,我们可以看到,我正在基于数据框中的列名和主成分的加载绘制此图。这将显示以下图表(删除列名):

假设7个变量的列名是A到G

以下是该主分量的载荷情况:

array([ 0.43144526, -0.68946464,  0.01079084, -0.0601113 , -0.0156593 ,
       -0.02898552, -0.57764895])
我的问题是:如何确保0.43144的加载值属于
变量A
,而-0.57764的加载值属于
变量G
?我想确保正确的变量具有正确的加载

是否有更好的方法来确保正确的加载到正确的变量

array([ 0.43144526, -0.68946464,  0.01079084, -0.0601113 , -0.0156593 ,
       -0.02898552, -0.57764895])