sklearn SVD fit_transform函数的输入数据类型

时间:2016-09-08 14:47:25

标签: python scikit-learn nlp svd dimensionality-reduction

我已经在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,它期望:< / p>

  

X:{array-like,sparse matrix},shape(n_samples,n_features)

1 个答案:

答案 0 :(得分:1)

您可以将此CSV转换为libsvm格式:

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)

然后,

if File.exist?("#{Dir.home}/Desktop/test.xls")
  p 'File EXISTS'
else
  p 'Cannot find any file'
end