我有以下数据框:
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)
然后,基于您解决的许多维度,您可以将其添加回数据框架。