http://download.csdn.net/my这里可以下载支持向量机工具箱,本人maltab R2012B 和3.1匹配使用,其他的不行,大家在看着教程出现问题后,如果本文没有提到,先搜索错误,如果没有明确给出答案,多尝试不同的版本也许就可以用了,我的就是一样的教程换了4个工具箱后才可以使用(版本问题)。
首先是下载好安装压缩包,我这里下载的是libsvm-3.1.zip,下载好,解压,然后将其放到MATLAB安装文件夹toolbox文件夹下,这里说明一点:并不是必须要到这个文件夹下,只是为了规范,这样应用的时候,工具箱就全在toolbox工具箱文件夹里了。便于管理和操作。
以我的电脑为例,我的MATLAB安装在D盘Program Files文件夹中,那么我需要将解压好的libsvm-3.1文件夹放在D:\Program Files\MATLAB\R2012b\toolbox文件夹下
然后我们需要将这个路径设定进来。
点击 file- set path
会弹出下面这个界面,这里要注意了,很多教程中都是说点击add folders-,但是很多情况下,都会发生错误,这是因为如果你的工具箱文件夹中含有子文件夹,那么久无法添加到路径当中来,那么应用的时候肯定会发生错误。
正确添加方法(如下图):单击-add with subfolders,找到刚才的libsvm-3.1文件夹,确定,然后最后保存就可以了。
说明:
并不是到这一步,就代表工具箱导入成功了,要具体看工具箱的说明,例如对这一个工具箱libsvm,工具箱还不可以用,还需要进行编译、make等操作。
一、具体步骤(c++6.0)
在MATLAB主窗口中依次输入
mex -setup 回车,这里注意-前面是有空格的
y 回车
然后在出现的选项中选择含有C++6.0的那个选项的序号,例如我的是2,那么输入 2 回车,如果是vs2012参考下面的mex-setup
y 回车
make 回车
等待自动执行完毕,导入全部完成,可以使用了。
二、具体步骤(vs2012)
在MATLAB主窗口中依次输入
>> mex -setup
MEX 配置为使用 ‘Microsoft Visual C++ 2012 (C)‘ 以进行 C 语言编译。
警告: MATLAB C 和 Fortran API 已更改,现可支持包含 2^32-1 个以上元素的 MATLAB 变量。不久以后,您需要更新代码以利用新的 API。您可以在以下网址找到相关详细信息:
要选择不同的语言,请从以下选项中选择一种命令:
mex -setup C++
mex -setup FORTRAN
后来按照libsvm提供的最原始办法:make 解决了
具体步骤如下:
1、下载libsvm,我下载的是libsvm-3.1版本
2、解压后放到matlab的安装目录下,我个人喜欢直接放到matlab下面的toolbox里面,毕竟这也是其中的工具之一。
3、在matlab主界面找到“设置路径”,添加文件夹及其子文件,索性把整个libsvm-3.1全添加进去,反正可能都要用到。
4、切换matlab运行目录致:C:\Program Files\MATLAB\R2014b\toolbox\libsvm-3.1\matlab,在命令行输入make,也就是该目录下的那个make文件。这时候就像以前安装libsvm一样,会自动make出来很多文件,不用管,主要是会看到make出带有mexm64后缀名的文件,这就成功了。
5、拷贝4步骤中matlab文件夹下所有make出来的文件,到libsvm-3.1\windows文件夹下,替换替换替换……,统统替换。
6、over,出一口气,放松一下,距离成功只差后面的第七步
7、验证是否成功:使用数据libsvm试验数据下载
可以将下载后的heart_scale.mat数据复制到刚才的目录下(其实无所谓)。然后输入libsvm工具箱特有的语句,就可以验证成功与否了:
>> load heart_scale.mat
>> model = svmtrain(heart_scale_label, heart_scale_inst, ‘-c
1 -g 0.07‘);
>> [predict_label, accuracy, dec_values] = svmpredict(heart_scale_label,
heart_scale_inst, model);
输出:
*
optimization finished, #iter = 134
nu = 0.433785
obj = -101.855060, rho = 0.426412
nSV = 130, nBSV = 107
Total nSV = 130
Accuracy = 86.6667% (234/270) (classification)
得到了分类精度,这就证明libsvm安装成功!