当前位置:  开发笔记 > 编程语言 > 正文

使用python将CSV文件转换为LIBSVM兼容数据文件

如何解决《使用python将CSV文件转换为LIBSVM兼容数据文件》经验,为你挑选了1个好方法。

我正在使用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找到了这个解决方案

任何人都可以推荐一种解决这个问题的方法吗?



1> emeth..:

您可以使用csv2libsvm.py转换csvlibsvm 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
...

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有