2016-03-28 297 views
0

我打算使用sklearn.decomposition.TruncatedSVD爲一個Kaggle 比賽進行LSA,我知道後面SVD和LSA數學,但我通過 scikit學習的用戶指南困惑,所以我不知道怎麼樣實際適用 TruncatedSVDScikit學習TruncatedSVD文檔

the doc,它指出:

此操作後,

enter image description here

U_k * transpose(S_k)是變換訓練k功能(在API中稱爲n_components)設置

這是爲什麼?我想在SVD之後,X,此時X_k應該是U_k * S_k * transpose(V_k)

,然後它說,

要還變換測試設置X,我們與V_k乘以:X' = X * V_k

這是什麼意思?

回答

0

我喜歡文檔Here好一點。 Sklearn是在相當一致的,你幾乎總是使用某種下面的代碼的組合:如果你想改變這種數據,而不是隻擬合它的

#import desired sklearn class 
from sklearn.decomposition import TruncatedSVD 

trainData= #someArray 
testData = #someArray 

model = TruncatedSVD(n_components=5, random_state=42) 
model.fit(trainData) #you fit your model on the underlying data 

model.fit_transform(trainData) #fit and transform underlying data 

同樣,如果您沒有轉化數據,但進行預測相反,你會使用類似:

predictions = model.predict(testData) 

希望幫助...