我正在使用libsvm做一个项目,我正在准备我的数据来使用lib.如何将CSV文件转换为LIBSVM兼容数据?
CSV文件:https: //github.com/scikit-learn/scikit-learn/blob/master/sklearn/datasets/data/iris.csv
在频率问题中:
如何将其他数据格式转换为LIBSVM格式?
这取决于您的数据格式.一种简单的方法是在libsvm matlab/octave接口中使用libsvmwrite.以UCI机器学习库中的CSV(逗号分隔值)文件为例.我们下载SPECTF.train.标签位于第一列.以下步骤以libsvm格式生成文件.
matlab> SPECTF = csvread('SPECTF.train'); % read a csv file matlab> labels = SPECTF(:, 1); % labels from the 1st column matlab> features = SPECTF(:, 2:end); matlab> features_sparse = sparse(features); % features must be in a sparse matrix matlab> libsvmwrite('SPECTFlibsvm.train', labels, features_sparse); The tranformed data are stored in SPECTFlibsvm.train. Alternatively, you can use convert.c to convert CSV format to libsvm format.
但我不想使用matlab,我使用python.
我也使用JAVA找到了这个解决方案
任何人都可以推荐一种解决这个问题的方法吗?
您可以使用csv2libsvm.py转换csv
到libsvm data
python csv2libsvm.py iris.csv libsvm.data 4 True
其中4表示target index
,True
表示csv
有标题.
最后,你可以得到libsvm.data
如
0 1:5.1 2:3.5 3:1.4 4:0.2 0 1:4.9 2:3.0 3:1.4 4:0.2 0 1:4.7 2:3.2 3:1.3 4:0.2 0 1:4.6 2:3.1 3:1.5 4:0.2 ...
从 iris.csv
150,4,setosa,versicolor,virginica 5.1,3.5,1.4,0.2,0 4.9,3.0,1.4,0.2,0 4.7,3.2,1.3,0.2,0 4.6,3.1,1.5,0.2,0 ...