2016-03-28 225 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) 

希望帮助...