构成PCA中PC1的原始功能百分比

时间:2019-04-09 08:40:47

标签: python plot bar-chart pca feature-extraction

我用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

非常感谢!

0 个答案:

没有答案