我正在做一个使用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找到了这个解决方案
谁能推荐一个解决这个问题的方法?
2条答案
按热度按时间btxsgosb1#
您可以使用csv2libsvm.py将
csv
转换为libsvm data
其中,4表示
target index
,True
表示csv
具有报头。最后,您可以将
libsvm.data
作为从
iris.csv
6ss1mwsb2#
csv2libsvm.py不支持Python3,也不支持标签目标(字符串目标),我稍微修改了一下。现在,它应该可以与Python3以及标签目标一起工作。我对Python非常陌生,所以我的代码可能没有遵循最佳实践,但我希望它足够好,可以帮助到别人。