我正在尝试从使用scikit-learn完成的PCA中恢复,这些功能被选择为相关。
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_
是您要寻找的。