我已经处理了CSV文件中的文档数据,我在pandas DataFrame中读取:
+----------+------+------------+
| document | term | count |
+----------+------+------------+
| 1 | 126 | 1 |
| 1 | 80 | 1 |
| 1 | 1221 | 2 |
| 2 | 2332 | 1 |
由document_id, term和term frequency组成。
我没有原始文档,但只是这个处理过的数据,我想用sklearn应用SVD,但我不知道如何为SVD fit_transform()准备这个DataFrame,它期望:
X:{类数组,稀疏矩阵},形状(n_samples, n_features)
您可以将此CSV转换为libsvm格式:
<label> <index1>:<value1> <index2>:<value2> ...
.
.
.
因此,您的示例数据看起来像:
0 80:1 126:1 1221:2
0 2332:1
然后使用sklearn.datasets.load_svmlight_file
from sklearn.datasets import load_svmlight_file
X, y = load_svmlight_file('your_libsvm_format_file.libsvm')
,
from sklearn.decomposition import SVD
svd = SVD()
X_transformed = svd.fit_transform(X)