1、下载libsvm 3.21,下载地址http://www.csie.ntu.edu.tw/~cjlin/libsvm/。
2、将工具包放到任何地方均可,将工具包添加到Matlab的搜索路径。Set Path->add with subfolders->save
3、编译。mex -setup 注意:mex后要有空格,然后再是-。会有以下提示
mex -setup
MEX 配置为使用 'Microsoft Visual C++ 2015 Professional (C)' 以进行 C 语言编译。
警告: MATLAB C 和 Fortran API 已更改,现可支持包含 2^32-1 个以上元素的 MATLAB 变量。不久以后, 您需要更新代码以利用
新的 API。您可以在以下网址找到相关详细信息: http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html。
要选择不同的语言,请从以下选项中选择一种命令:
mex -setup C++
mex -setup FORTRAN
这时你需要用鼠标点击 mex -setup C++.或者输入mex -setup C++,之后会出现
MEX 配置为使用 'Microsoft Visual C++ 2015 Professional' 以进行 C++ 语言编译。
警告: MATLAB C 和 Fortran API 已更改,现可支持包含 2^32-1 个以上元素的 MATLAB 变量。不久以后, 您需要更新代码以利用
新的 API。您可以在以下网址找到相关详细信息: http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html。
Matlab工作目录进入到libsvm-3.21/matlab(命令为:cd 'D:\Program Files\MATLAB\R2015b\toolbox\libsvm-3.21\matlab'),
输入make后出现
使用 'Microsoft Visual C++ 2015 Professional (C)' 编译。
MEX 已成功完成。
使用 'Microsoft Visual C++ 2015 Professional (C)' 编译。
MEX 已成功完成。
使用 'Microsoft Visual C++ 2015 Professional' 编译。
MEX 已成功完成。
使用 'Microsoft Visual C++ 2015 Professional' 编译。
MEX 已成功完成。
看到这个结果说明编译成功。
5、检查SVM是否安装成功
clear;
[label_vector, instance_matrix] =libsvmread('heart_scale');
model = svmtrain(label_vector, instance_matrix);
[predicted_label, accuracy, prob_estimates] = svmpredict(label_vector, instance_matrix, model, 'b');
这样仍然不能成功,而提示如下的错误: can’t open input file heart_scale
但是我们可以解决这个问题,通过这样的方式:
1.将位于LibSVM文件夹下的heart_scale数据文件拷贝到当前工作目录(MATLAB)中;
或 2.将LibSVM文件夹设置为当前工作目录; 如此,再执行libsvmread命令,即可将数据文件读取进来进行一些基本的处理
运行成功之后的结果:
optimization finished, #iter = 162
nu = 0.431029
obj = -100.877288, rho = 0.424462
nSV = 132, nBSV = 107
Total nSV = 132
Accuracy = 86.6667% (234/270) (classification)