0

我打算在sklearn.decomposition.TruncatedSVDKaggle 比赛中使用 LSA,我知道 SVD 和 LSA 背后的数学,但我对 scikit-learn 的用户指南感到困惑,因此我不确定如何实际应用 TruncatedSVD

doc中,它指出:

这次手术后,

在此处输入图像描述

U_k * transpose(S_k)是具有特征的转换训练集kn_components在 API 中调用)

为什么是这样?我想在SVD之后,X此时X_k应该是U_k * S_k * transpose(V_k)

然后它说,

为了也转换一个测试集X,我们将它乘以V_kX' = X * V_k

这是什么意思?

4

1 回答 1

1

我更喜欢这里的文档。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.transform(testData)

希望有帮助...

于 2016-03-28T01:45:57.743 回答