Оригинальные функции, составляющие процент PC1 в PCA

#python #plot #bar-chart #pca #feature-extraction

#python #график #гистограмма #pca #извлечение функций

Вопрос:

Я использовал PCA, чтобы найти 60 ПК:

 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, но не могу понять, как найти имена функций. Например, то, что я сделал, — это сортировка, чтобы найти 10 лучших переменных функций, составляющих 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

Большое спасибо!