2016-03-28 16 views
0

Я планирую использовать sklearn.decomposition.TruncatedSVD для выполнения LSA для конкуренции Kaggle, я знаю математику за СВД и LSA, но я смущен scikit-узнать Руководство пользователя, поэтому я не знаю, как для фактического применения TruncatedSVD.Scikit учиться TruncatedSVD документации

В the doc говорится, что:

После этой операции

enter image description here

U_k * transpose(S_k) является преобразованная обучение набор с k функций (так называемые n_components в API)

Почему это? Я думал после 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) 

Надежда, которая помогает ...