Я намагаюся оговтатися від PCA, виконаного за допомогою scikit-learn, які функції вибрані як відповідні .
Класичний приклад із набором даних IRIS.
import pandas as pd
import pylab as pl
from sklearn import datasets
from sklearn.decomposition import PCA
# load dataset
iris = datasets.load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
# normalize data
df_norm = (df - df.mean()) / df.std()
# PCA
pca = PCA(n_components=2)
pca.fit_transform(df_norm.values)
print pca.explained_variance_ratio_
Це повертається
In [42]: pca.explained_variance_ratio_
Out[42]: array([ 0.72770452, 0.23030523])
Як я можу відновити, які дві функції дозволяють пояснити ці дві розбіжності між набором даних? Сказано по-різному, як я можу отримати індекс цих функцій у iris.feature_names?
In [47]: print iris.feature_names
['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
Заздалегідь дякую за допомогу.
pca.components_
це те, що ви шукаєте.