2016-11-29 15 views
0

想象一下,我有9維和6000樣本的訓練數據,並且我使用sklearn PCA應用了PCA算法。
我將它的尺寸減小到4,並且知道我希望將具有9個特徵的一個新樣本儘可能快地轉換爲具有4個組件的訓練數據空間。
這是我第一次PCA代碼:添加新的向量到PCA新空間數據python

X_std = StandardScaler().fit_transform(df1) 
pca = PCA(n_components = 4) 
result = pca.fit_transform(X_std) 

有沒有辦法用sklearn PCA功能做到這一點?

回答

1

如果你想在原來的矩陣變換到由PCA提供的低維投影可以使用transform功能,將運行特徵向量的高效內積和輸入矩陣:

pca = PCA(n_components=4) 
pca.fit(X_train) 
X_std_reducted = pca.transform(X_std) 

從scikit來源:

X_transformed = fast_dot(X, self.components_.T) 

因此,應用PCA轉換隻是一個線性組合 - 非常快。現在,您可以將投影應用於訓練集以及將來要測試的任何新數據。

本文較詳細地描述了該過程:http://www.eggie5.com/69-dimensionality-reduction-using-pca