LIBSVM学习网站的数据集读取----Matlab版本

读取LIBSVM的数据

起因是在svm学习网站看到奇怪格式的数据,难以读取。后来发现解读此类文件需要利用工具包内的libsvmread函数。因此,基于Matlab做了此网站数据的读取教程。

1. 下载工具包

首先必要的部分是下载工具包(下载网址),我们选择zip文件:

img

随后选择一个合适的位置解压文件,可以看到,内部是含有诸多语言的工具包供学习者使用的。这里我们使用matlab文件夹内的函数。
img

2. 配置环境

我们需要配置环境后才能在不同的文件路径下使用工具包。具体步骤如下:

2.1 进入环境配置

2.2 保存工具包路径

点击添加文件夹,选择matlab版本的工具包路径,最后保存:
img
img

2.3 编译

将路径切换至matlab版本的工具包下

输入指令

mex -setup

如果没有报错,那么输入下面指令:

make

如果是使用visual studio的朋友一定会配置得非常顺利。但由于作者的编译器并没有十分完善的c++环境,因此在第一步便报错了。解决办法如下(没有问题的朋友可以跳过此处):

2.3.1 处理编译错误

首先我们依照提示进入"附加功能"(注意:2017a及以前版本的Matlab不可使用此安装方式,需要自行下载mingw):
img

搜索"MINGW",并下载。

比较迷惑的时作者安装了mingw64用来写c++代码的,但此处matlab没有找到,我们按照指示步骤走就行。
且按作者对mingw的安装印象,matlab提供的安装是比较方便的。
img

下载完成后我们再次输入指令:

mex -setup

选择c++版本的编译器
img
输入指令

make

img

安装完成后便会有四个后缀为".mexw64"的文件:
img

3. 测试

我们从数据网站下载一个数据集(网址见文章首部),这里选用“satimage.scale”,将四个数据集存放在txt文件内。

img

将路径转移到数据集下,尝试性地输入如下图的指令,发现作者已经在matlab的工具箱做了提示:

img

因此我们输入:

[label_vector, instance_matrix] = libsvmread('satimage.scale.txt');

可以发现,其中一个向量是标签,另外一个则是存放稀疏矩阵的类似三元组的结构(sparse double):
img

具体的工具包使用,等作者探索完毕再更新......

posted @ 2022-10-16 21:06  Feo2022  阅读(1267)  评论(0)    收藏  举报