我有一个看起来像这样的DataFrame:
A B C D
1 String1 String2 String3 String4
2 String2 String3 String4 String5
3 String3 String4 String5 String6
.........................................
我的目标是将此DataFrame转换为libSVM格式。
到目前为止我所尝试的是以下内容:
dummy= pd.get_dummies(dataframe)
dummy.to_csv('dataframe.csv', header=False, index=False)
有没有办法将dataframe或csv文件转换为这种格式。或者有更聪明的方法来进行转型吗?
我尝试从此存储库加载要执行this的脚本,如下所示:
%load libsvm2csv.py
并正确加载脚本,但是当我运行时:
libsvm2csv.py dataframe.csv dataframe.data 0 True
或
libsvm2csv.py dataframe.csv dataframe.txt 0 True
我得到"SyntaxError: invalid syntax"
指向dataframe.csv
答案 0 :(得分:1)
预处理数据后,您可以提取矩阵并使用scikit-learnns dump_svmlight_file来创建此格式。
import pandas as pd
from sklearn.datasets import dump_svmlight_file
dummy = pd.get_dummies(dataframe)
mat = dummy.as_matrix()
dump_svmlight_file(mat, y, 'svm-output.libsvm') # where is your y?
你提到 libsvm2csv.py 来进行这种转换,但这只是错误的方向。它是 libsvm-format - > CSV 强>
如果您想从 cvs - >转换,请检查phraugs csv2libsvm.py libsvm (没有scikit-learn)。
我更喜欢使用scikit-learn(与phraug相比)