【发布时间】:2017-09-21 13:57:13
【问题描述】:
我有以下数据框:
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 减少到 2 而且我无法理解 PCA 将哪个维度:rows 或 columns 用作向量的数量。
因为如果我执行以下操作:
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='满'
即使每个向量中只有 1 个数据,我仍然应该能够将向量的数量从 4 个减少到 3 个。
【问题讨论】:
-
所以如果我理解正确,您想使用 PCA 将
ABCD减少到AB? -
是的。或者在第二个例子中
ABCD到ABC -
PCA 将数据转换为新维度。说 PCA 将
ABCD减少到ABC在技术上是不正确的。它将ABCD减少为一些新的XYZ
标签: python pandas dataframe scikit-learn pca