Sklearn PCA如何在数据范围内工作



我有以下数据框:

      A       B      C      D
0     4       1      1     78
1    82       2     58     41
2    53       3     31     76
3     1      45      4     12
5     5       2      4     87
6     1      74      6     11
7     1       1      6     47
8     1       1      6      8

我试图应用的:

 sklearn.decomposition.PCA

为了减少4列的数量而且我不明白哪个维度: PCA作为向量的数量。

,因为如果我执行以下操作:

    df=
          A       B      C      D
    0     4       1      1     78
pca=PCA(n_components=3)
pca.fit(df.T)

它将返回以下错误:

valueerror:n_components = 3必须在0和n_features = 1之间 svd_solver ='full'

即使我在每个向量中只有1个数据,我仍然应该能够将向量的数量从4减少到3。

这是您使用PCA进行操作的方式,请注意我也标准化了值。

from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
vals = df.ix[:, :4].values
vals_std = StandardScaler().fit_transform(vals)
sklearn_pca = PCA(n_components = 'however many you want')
vals_pca = sklearn_pca.fit_transform(vals_std)

然后,基于您解决的许多维度,您可以将其添加回数据框架。

最新更新