#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
Большое спасибо!