最近学习使用libsvm的过程总结如下:
1、下载matlab的libsvm程序压缩包:libsvm-mat-3.0-1.zip,解压缩到一目录下如;libsvm-mat-3.0.1
2、在此目录下有一个readme文件,明确指出对于windows平台已经预先编译好了svmtrain.mexw32和svmpredict.mexw32,所以不需要再进行编译了。这时我把libsvm-mat-3.0.1加到MATLAB的路径目录下,尝试使用svmtrain命令,可报以下错误“Invalid MEX-file 'E:\Program Files\work\libsvm-mat-3.0-1\svmtrain.mexw32': 找不到指定的模块。”,其中E:\Program Files\work\libsvm-mat-3.0-1是我的工作目录。这时我考虑后,把libsvm-mat-3.0.1文件夹下四个mexw32后缀的mex文件复制到matlab安装目录下的bin\win32目录下。
3、然后再次尝试libsvm自带的例子:
>>oad heart_scale.mat
>> model = svmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');
此时报告说找不到msvcr100.dll.
于是,我从网上找到msvcr100.dll的下载地址“http://www.dll-download-system.com/home/m-dlls-not-system-/msvcr100.dll/details.html”,下载解压缩文件后,把msvcr100.dll复制到C:\WINDOWS\system32目录下。
4、我再次尝试上面的命令,这次成功了。然后:
[predict_label, accuracy, dec_values] = svmpredict(heart_scale_label, heart_scale_inst, model);
这时就可以看到预测的精度了:Accuracy = 86.6667% (234/270) (classification)