Вес функции графика для анализа PCA

У меня есть набор данных, который доступен на:

http://textuploader.com/df5nt

В моем наборе данных 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'])

Другие вопросы по тегам