Я использовал 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) в ПК1 и ПК2.Например, для ПК1 я хотел бы показать гистограмму процентного соотношения каждой из 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
Большое спасибо!