Libsvm格式数据的转化,利用表格文件转化为txt,亲测有效,欢迎学习交流!生成libSVM的数据格式及使用方法总结

首先介绍一下 libSVM的数据格式

Label 1:value 2:value ….

Label:是类别的标签,是一个数字,如果是若干样本,可以将样本转化为数字的表示,比如1代表狗,2代表猫等等

Value:就是要训练的数据,从分类的角度来说就是特征值,数据之间用空格隔开

比如: -15 1:0.708 2:1056 3:-0.3333

需要注意的是,如果特征值为0,特征冒号前面的(姑且称做序号)可以不连续。如:

       -15 1:0.708 3:-0.3333

表明第2个特征值为0,从编程的角度来说,这样做可以减少内存的使用,并提高做矩阵内积时的运算速度。我们平时在matlab中产生的数据都是没有序号的常规矩阵,那么如何将matlab中的数据矩阵转化为libsvm格式呢,这就是接下来我要讲的,首先网上确实有很多教程,但是一点也不严谨或者说错误百出,重点的地方表述不清,非重点的地方倒是描述的很清楚,难道就是为了蹭个访问量吗!!!!!!!!可耻!!!!!!

 

怎样生成libsvm所用的数据格式(这里以matlab中的 .mat数据为例进行转化),转化的方式呢很简单就是使用FormatDataLibsvm.xls文件,该文件你可以通过百度云盘获取,需要的可以点击连接获取、

 

链接:https://pan.baidu.com/s/1nzxP1rkdT9oeKwezrVqVzg 
提取码:f5d4

获取到文件之后就好办了

为了条理清晰,我是用数字来表示转化的步骤

1.首先使用office打开文件,因为是excel文件嘛,所以如果你的电脑有office 可以直接双击打开即可。如下图所示:

点击“启用编辑”后,再如下图点击“启用内容”,这个时候文件时可以编辑的,

2.把已有的原数据删除,全选然后delete就行,如下图所示:

3.这个时候将 .mat的特征数据(也就是不包含标签label的那些数据,可能有很多数据,直接复制粘贴过来就行)复制过来,(这里讲的是matlab生成的表格数据),这个时候通常你的特征数据是很长的数字,比如1.254674615644这样的数值,直接复制过来以后可能会显示成1.2或者1.25这样子,不要紧,只是显示而已。特征数据复制好了以后,然后把标签数据(也就是单独的一列再复制过来,注意标签数据这一列要放在最后一列,也就是类似于下图这种数据)

4.数据量比较大时,比如有几百行的特征值,复制过来以后,数值型数据可能会被转为常规性(由于FormDataLibsvm.xls文件默认的大小,复制完之后一定要拉到最后一下自己数据是否复制全了),这个时候这一步很重要,就是将数据全选,然后点击下图下拉框,再点击一下“数值“,确保表内的所有数据都是数值型。

5.这个时候数据的复制已经完成了。我们需要的就是将这些数据进行转化,这个时候用到了 宏 ,不管是什么,我们只管怎么用,点击"视图",然后"宏",再点击"查看宏",如下图所示:

6.点击查看宏后会出现如下弹窗,我们选择 "FormatDataToLibsvm",然后点击"执行"。

7.这个时候会生成libsvm格式的数据,如下图(下边的图与上边的数据不一致,我只是演示一下)所示,

8.最后一步,就是将这些数据保存到txt文件中,这里尤其要注意,保存的时候并不是将这个表格"另存为",而是新建一个txt文件,这里我们新建的文件为   Test.txt。 然后将数据全选复制然后粘贴到Test.txt中。

这个时候数据就已经转化成功了,我们可以通过cmd测试数据的格式是否正确,进入到libsvm工具包中,在libsvm2.*.*\tools 目录下输入

python grid.py Test.txt

这个时候如果显示No error如下图所示

就表示数据转化成功了!!!祝你好运!!有什么转化的问题可以直接在下方评论!!希望能帮助到您!!

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值