libsvm安装(MATLAB)

今天需要用到libsvm,然后就开始了网上找教程之旅。。。一折腾一下午又快过去了-_-#

主要参考链接:http://www.cnblogs.com/tornadomeet/archive/2012/06/02/2532201.html

    http://blog.csdn.net/abcjennifer/article/details/7370177

    http://www.yueye.org/2013/problems-of-libsvm-used-in-matlab.html

下载libsvm:

  在网站http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 下载libsvm最新版本3.12,解压到相应目录(此处解压即安装)。我将其解压后放在c盘,即C:\Program Files\MATLAB\libsvm-3.12。

设置matlab搜索工作目录:

  打开matlab,file->Set Path->Add with Subfolders,然后定位到C:\Program Files\libsvm-3.12,注意这里最好定位到libsvm-3.12,而不要定位到libsvm-3.12子目录matlab(也不知道是否可以,没有试过)。点击Save后单击Close即可。

设置matlab当前目工作录:

  将matlab的Current Folder定位到刚刚libsvm-3.12下的matlab目录,如我的:C:\Program Files\libsvm-3.12\matlab

必须在libsvm下的matlab目录进行编译操作

选择c/c++编译器:

  在matlab的终端输入:mex –setup,当出现Would you like mex to locate installed compilers [y]/n?提示时输入y。然后提示让你选择c/c++编译器,我这里输入数字2,即vs c++2010。当出现Are these correct [y]/n?提示时,输入y即可。当出现如下提示说明编译器选择成功:

  

  当然上面成功的是因为我的编译器安装在系统默认的路径下,如果网友的vs不是安装在系统默认下则需要选择n,然后自己手动更改安装目录,大家去尝试下肯定会成功的。

在终端输入make:

  然后查看C:\Program Files\libsvm-3.12\matlab目录下是否生成了libsvmread.mexw32,libsvmwrite.mexw32,svmtrain.mexw32,svmpredict.mexw32这4个文件,如果用,说明libsvm的matlab已经编译成功了。

测试libsvm的matlab工具箱是否可用:

  在命令行输入下面命令:

  load heart_scale;

  model=svmtrain(heart_scale_label,heart_scale_inst)

  [predict_lebel,accuracy]=svmpredict(heart_scale_label,heart_scale_inst,model)

  则其model显示为:

  

  结果显示为:

  

  这说明libsvm在matlab中可以使用了。

%问题:

由于自己下的是libsvm-3.20版本,heart_scale.mat文件官方已经不提供了,所以执行第一句命令会报错

Number of columns on line 2 of ASCII file D:\Program
Files\MATLAB\libsvm-3.20\heart_scale
must be the same as previous lines.

解决方法:

利用libsvmread函数加载

[heart_scale_label,heart_scale_inst]=libsvmread('heart_scale'); 

但又提示can't open input file heart_scale

此时有两种方法:1.将libsvm提供的heart_scale数据集复制到当前工作目录

2.将当前目录设置到libsvm-3.20目录


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章