2016-03-28 17 views
0

Ich plane sklearn.decomposition.TruncatedSVD verwenden LSA für einen Wettbewerb Kaggle auszuführen, ich kenne die Mathematik hinter SVD und LSA, aber ich bin von Scikit-Learn in der Bedienungsanleitung zu verwechseln, also bin ich nicht sicher, wie tatsächlich anwenden TruncatedSVD.Scikit-Learn TruncatedSVD Dokumentation

In the doc, es heißt:

Nach dieser Operation

enter image description here

U_k * transpose(S_k) das transformierte Training mit k Merkmalen (genannt n_components in der API) gesetzt ist

Warum ist das? Ich dachte nach SVD, X, um diese Zeit X_k sollte U_k * S_k * transpose(V_k) sein?

Und dann heißt es,

Um auch ein Test Transformationssatz X multiplizieren wir es mit V_k: X' = X * V_k

Was bedeutet das?

Antwort

0

Ich mag die Dokumentation Here ein bisschen besser. Sklearn ist ziemlich konsistent, dass man fast immer eine Art Kombination aus dem folgenden Code verwenden:

#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 

, wenn Sie diese Daten zu transformieren wollen, anstatt es nur passend,

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

Und falls Sie keine Daten verwandeln, sondern eine Vorhersage stattdessen machen, würden Sie so etwas wie verwenden:

predictions = model.predict(testData) 

Hoffnung, die...

hilft