libsvm库为支持向量机SVM的工具箱,由于libsvm库是使用C++来开发的,所以要想在MATLAB中使用libsvm工具箱,则要先在MATLAB中调用C++编译器来进行编译。
libsvm库的配置编译过程如下:
1、C++编译器准备
首先要确保你的电脑中已经安装了Visual Studio 2013等C++编译器,下面的步骤以我电脑中安装的Visual Studio 2013为例进行解释。
2、libsvm工具箱
下载libsvm工具箱,下载地址:libsvm工具箱。把libsvm工具箱解压到MATLAB的toolbox文件夹下,并在MATLAB中设置好路径:
File->set path ->add with subfolders->加入libsvm-3.22文件夹的路径
3、设置MALAB的当前目录
在MATLAB中把当前目录转到toolbox->libsvm-3.22->matlab,如下:
4、编译C++文件
在MATLAB的文件中输入:
mex -setup
用于选择编译器,回车之后会出现:
接着输入:
mex -setup C++
用于打开C++编译器,接着出现:
编译C++文件,输入命令:
make
若没有报错,则编译成功,如下:
到此,libsvm工具箱就安装成功了。
5、测试一下SVM算法
把MATLAB的当前目录返回到toolbox->libsvm-3.22,加载MATLAB数据集:
[heart_scale_label,heart_scale_inst]=libsvmread('heart_scale');
测试SVM的训练和predict:
model = svmtrain(heart_scale_label,heart_scale_inst);
[predicted_label,accuracy,prob_estimates] = svmpredict(heart_scale_label, heart_scale_inst, model);
测试结果如下:
Accuracy = 86.6667% (234/270) (classification)
测试的这个过程如下: