0
我試圖使用sklearn的PCA功能將我的數據減少到2維。但是,我注意到當我使用fit_transform()函數執行此操作時,結果與將components_屬性與我的輸入數據相乘的結果不匹配。sklearn的PCA.fit_transform結果與產品PCA.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!!!