原文:http://blog.csdn.net/pangpang1239/article/details/7435842
本人比较out,从没写过博文,写下以下的东西一是听从师姐的教导,二是为了记载自己学习的点点,三更重要的是希望能给后来的学习者一点帮助,希望大家能少走点弯路;写得不好,还忘大家见谅!
使用svm之前的数据格式的转换相信是每个用svm的人都需要考虑的问题,一方面可以自己便代码实现,另一方面也可以利用FormatDataLibsvm.xls来实现,本人现阶段用的是后者。网上关于FormatDataLibsvm.xls的使用说明是不少,但本人自己还是摸索了好久才终于找到门路,现将其过程总结如下:
首先:FormatDataLibsvm.xls的下载
在网上找了很久,终于在http://ishare.iask.sina.com.cn/f/5899599.html找到,但下载需要积分,有需要者可以向本人索要;
其次,格式的转换
本人在使用中发现,使用FormatDataLibsvm.xls进行的数据转换应该包括两两种数据的转换,一种是data.xls格式->data.svm格式的转换;另一种的带有逗号、空格、顿号、分号等文本数据的转换,先归为data.txt格式->data.svm格式的转换;
一、.xls格式->svm格式的转换(网上基本上介绍的都是该类型)
1、 运行FormatDataLibsvm.xls(注意这时会有一个关于“宏已禁宏”的安全警示,点击“选项”,选择“启用此内容”,确定即可);
2、 打开data.xls,(注:网上很多的介绍都是直接将数据粘贴到sheet1的topleft单元),要特别注意的是这时候的数据排列顺序应该是:
条件属性a
7 5 ... 2
4 2 ... 1
3、"工具"-->"宏"-->执行下面有一个选项(FormatDatatoLibsvm)-->执行,要选中这个然后点击“运行”
决策属性 条件属性a 条件属性b ...
2 1:7 2:5 ...
1 1:4 2:2 ...
等数据转换完成后,将该文件保存为.txt文件。这时数据转换的问题就解决了。
二、.txt格式->svm格式的转换
首先说明的是,这里所提的.txt文本数据是指数据文件带有逗号、空格、顿号、分号等数据分离符号的数据文件。因为其用符号来分离,导致所有数据项都归类为一个属性,无法实现上面2步骤的格式输入,也就无法实现正确结果格式的输出了。
为了解决该问题,转换该过程与上面一过程的最大不同就在于:在打开该.txt文件的时候根据文本数据本身的数据特点将其所包含的逗号、分号、制表符等数据分离的符号去掉;具体的做法是:转换运行FormatDataLibsvm.xls,“文件”->“打开”->选择要打开的data,txt文件,接着在文本导入向导中根据data.txt文件本身的数据特点选择“原始数据类型(分隔符号)”;接着选择分隔符号的类型(目地是使得该数据分成独立的一列列数据,分离成功的话,在数据预览中将可以看到一列列分离独立的数据) :选择“列数据格式”(常规)->完成;
这时候只要调整上面"一"过程的数据格式,重复其后面的步骤2、3操作即可。
希望对你有帮助!