libSVM的数据格式转换:
数据有很多存储格式,txt格式,xls格式,data格式,csv格式等等,这些数据格式之间都可以互相转换,在此介绍一下*.xls、*.txt如何生成libsvm格式的数据。
生成libsvm数据有两种方法,在此介绍使用FormatDatalibsvm工具,因为这种方法直观简单,效率高,方便易行。其实只是利用了excel的宏。
一、.xls格式——>svm格式的转换
① 下载FormatDatalibsvm.xls 地址如下:
http://download.csdn.net/detail/smilehehe110/9702456
②准备好Excel数据集
如果是csv格式的可以先通过Excel转换成.xls格式,具体方法见下面。
③打开FormatDatalibsvm.xls
注意上方会出现一个框框提醒你宏已经被禁用,一定要点击更改,启用宏。
④加载data
可以直接将数据复制到topleft单元格,注意复制的时候只复制数据区域相关的属性,不要复制属性名称,否则会崩溃。
⑤转换
在Excel界面点击
“工具”—>”宏”—>”宏”—>FormatDatatoLibsvm–>执行
或“视图”—>”宏”—>”查看宏”——>FormatDatatoLibsvm–>执行
可以看到数据在进行转换和移动,稍等一下就可以看到数据变成了libsvm格式。
等数据转换完成后,将该文件保存为.txt文件。这时数据转换的问题就解决了。
csv和xls转换
有时候一开始拿到的数据时csv格式的,想把它转换成Excel原始格式,可以按照以下方式进行:
② 打开Excel,新建一空白文档。
② 在界面中单击“数据”—>“自文本”。找到并选中csv文件“源文件.csv”,单击“导入”。
操作会弹出一个窗口,不用做任何操作,点击下一步。
③在下一个界面根据分隔符类型选择相应符号,如逗号、分号等,选择后点击下一步
③ 接着点击下一步,如果需要更改数据格式可做调整。
④ 点击完成,弹出一个窗口,选择数据的存放位置,完成操作,可以看到数据变成了最原始的xls格式。
二、.txt格式——>svm格式的转换
首先说明的是,这里所提的.txt文本数据是指数据文件带有逗号、空格、顿号、分号等数据分离符号的数据文件。因为其用符号来分离,导致所有数据项都归类为一个属性,无法实现上面2步骤的格式输入,也就无法实现正确结果格式的输出了。
为了解决该问题,转换该过程与上面过程的最大不同就在于:
在打开该.txt文件的时候根据文本数据本身的数据特点将其所包含的逗号、分号、制表符等数据分离的符号去掉;
具体的做法是:转换运行FormatDataLibsvm.xls,“文件”->“打开”->选择要打开的data.txt文件,接着在文本导入向导中根据data.txt文件本身的数据特点选择“原始数据类型(分隔符号)”;接着选择分隔符号的类型(目的是使得该数据分成独立的一列列数据,分离成功的话,在数据预览中将可以看到一列列分离独立的数据) :选择“列数据格式”(常规)->完成;
这时候只要调整上面过程的数据格式,重复其后面的步骤 2 、 3 操作即可。