我计划使用sklearn.decomposition.TruncatedSVD
为Kaggle执行LSA
比赛,我知道SVD和LSA背后的数学,但我很困惑
scikit-learn的用户指南,因此我不确定如何实际应用
TruncatedSVD
。
在the doc中,它声明:
此操作后,
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 :(得分:1)
我更喜欢文档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)
希望有帮助...