【发布时间】:2019-01-11 22:27:51
【问题描述】:
我想知道sklearn.decomposition.PCA 中的transform() 或C++ opencv 中的project() 是否重新排列原始数据的结果。
pca.py:
import pandas as pd
from sklearn.decomposition import PCA
# read csv into dataframe
df = pd.read_csv('sample.csv')
columns=['x', 'y']
pca = PCA()
pca.fit(df)
t = pca.transform(df)
print(t)
sample.csv:
x,y
2.5,2.4
0.5,0.7
2.2,2.9
1.9,2.2
3.1,3.0
2.3,2.7
2,1.6
1,1.1
1.5,1.6
1.1,0.9
转换后的数据:
[[-0.82797019 -0.17511531]
[ 1.77758033 0.14285723]
[-0.99219749 0.38437499]
[-0.27421042 0.13041721]
[-1.67580142 -0.20949846]
[-0.9129491 0.17528244]
[ 0.09910944 -0.3498247 ]
[ 1.14457216 0.04641726]
[ 0.43804614 0.01776463]
[ 1.22382056 -0.16267529]]
我想确保(2.5, 2.4) 对应于(-0.82797019, -0.17511531),(0.5,0.7) 对应于(1.77758033,0.14285723) 等等。
OpenCV PCA 类'project() 输出相同。但是特征值似乎从 OpenCV 库中自动按降序重新排列,所以我想知道这些转换/投影的数据是否也相应地排列。
【问题讨论】:
标签: opencv scikit-learn pca