我用PCA找到了60台PC:
N_comp=60
from sklearn.decomposition import PCA
pca = PCA(n_components = N_comp)
X_pca=pca.fit_transform(X_scale) #lower dimension data
eigenvalues=pca.components_
现在,我正在尝试查找我的功能(X数据的列)对PC1和PC2的贡献。例如,对于PC1,我想显示一个条形图,以显示前10个功能中每个功能的百分比,其中x轴带有功能标签。
类似这样的东西: https://i.stack.imgur.com/Hz24K.png
我正在尝试在python中执行此操作,但无法弄清楚如何找到功能名称。例如,我所做的就是排序以查找构成PC1的前十个功能变量:
N_elements=10
PC1=abs(eigenvalues[1,:])
PC1.sort(axis=0)
PC1=PC1[::-1]
PC1=PC1[0:N_elements]
PC1
产生的结果
array([0.17040832, 0.16937861, 0.1683676 , 0.16544657, 0.16491703,
0.16491679, 0.16168056, 0.16108829, 0.16034576, 0.16029183])
并绘制:
plt.bar(range(N_elements), PC1, alpha=0.3, align='center')
plt.title('Contributions of variables to PC1')
但是这导致X轴仅是数字0到9(相当于10个元素)。我如何检索名称并将标签放在绘图栏上?
https://i.stack.imgur.com/iFdDt.png
非常感谢!