Вес функции графика для анализа PCA
У меня есть набор данных, который доступен на:
В моем наборе данных 4 столбца, соответствующих 4 различным функциям. Я могу рассчитать первый и второй основные компоненты, используя этот код:
import pandas as pd
from sklearn.decomposition import PCA as sklearnPCA
from sklearn.preprocessing import StandardScaler
data = pd.read_csv('rr.txt')
X = data.ix[:,0:4].values
X_std = StandardScaler().fit_transform(X)
sklearn_pca = sklearnPCA(n_components=2)
Y_sklearn = sklearn_pca.fit_transform(X_std)
print (Y_sklearn)
Теперь я хочу нарисовать веса функций для этих данных. Как то так: вес функции
Я знаю, что мне нужно использовать объясненный коэффициент дисперсии в scikit-learn, но я не мог понять, как реализовать его в своем коде, чтобы получить его. Я надеялся, что кто-нибудь сможет мне помочь с этим. Спасибо!
1 ответ
Использовать атрибут component_
http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html
feature_weights = sklearn_pca.components_
import matplotlib.pyplot as plt
%matplotlib inline
fig, (ax1,ax2) = plt.subplots(1,2)
ax1.bar(range(4),feature_weights[0],color=['b','g','r','c'])
ax2.bar(range(4),feature_weights[1],color=['b','g','r','c'])