【发布时间】:2016-01-03 21:34:04
【问题描述】:
我正在尝试使用 sklearn 的 PCA 功能将我的数据减少到二维。但是,我注意到当我使用 fit_transform() 函数执行此操作时,结果与将 components_ 属性与输入数据相乘的结果不匹配。
为什么这些不匹配?哪个结果是正确的?
def test_pca_fit_transform(self):
from sklearn.decomposition import PCA
input_data = np.matrix([[11,4,9,3,2,2], [7,2,8,2,0,2], [3,1,2,5,2,9]])
#each column of input data is an observation, each row is a dimension
#method1
pca = PCA(n_components=2)
data2d = pca.fit_transform(input_data.T)
#method2
component_matrix = np.matrix(pca.components_)
data2d_mult = (component_matrix * input_data).T
np.testing.assert_almost_equal(data2d, data2d_mult)
#FAILS!!!
【问题讨论】:
标签: numpy scikit-learn linear-algebra pca