当我未设置n_components
参数时,保留的组件数等于数据框的特征数。
如果未设置n_components
,则转换后的数据帧应相同,但事实并非如此。
为什么转换后的数据框与原始数据框不同?
import pandas as pd
pca = PCA(random_state=seed)
pd1 = pd.DataFrame([[1,1,1],[2,2,2],[3,3,3]])
pca.fit(pd1)
print(pd1)
print(pca.transform(pd1))
输出为:
0 1 2
0 1 1 1
1 2 2 2
2 3 3 3
[[-1.73205081e+00 -1.11022302e-16 0.00000000e+00]
[ 0.00000000e+00 0.00000000e+00 0.00000000e+00]
[ 1.73205081e+00 1.11022302e-16 0.00000000e+00]]
答案 0 :(得分:3)
sklearn pca page 中的文档说
ipairs()
这就是为什么您的结果包含3个成分的原因。
然后PCA会通过将数据转换为方差最大化(和正交)的那三个主轴来完成其工作。
要获得有关PCA的更多数学解释,请检查其他来源,例如PCA wikipedia