测试平台
matlab 2015a
win7 64位
下载地址
http://www.csie.ntu.edu.tw/~cjlin/libsvm/
安装
- 解压压缩包
- 将libsvm所在的文件夹及其subfolders添加到工作目录中
- 若是windows系统,则解压的文件夹的./windows下面有4个.mexw64文件,将此目录添加到matlab的工作路径中,即可通过代码加以验证,代码在后面提到。当然这种方法可能会报错
Invalid MEX-file 'C:\Program Files\MATLAB\MATLAB Production
,此时需要重新按照以下步骤生成matlab可执行文件
Server\R2015a\toolbox\3rdlib\libsvm_master\windows\libsvmread.mexw64': 找不到指定的模块。 - 将当前目录设置为./matlab,在command window中运行
mex -setup
,按照相应的步骤选择编译器等,即可成功安装 - 如果选择了之后,再运行
make
,可以在当前目录下生成4个文件,都是64位的matlab可执行文件,libsvmread.mexw64
、libsvmwrite.mexw64
、svmpredict.mexw64
、svmtrain.mexw64
,将这四个文件放在libsvm的windows目录下,全部替换掉即可。 - 如果上一步报错,无法读取libsvm.c,则关闭matlab,以管理员方式运行(亲测有效),重新make,生成后,再替换
- 若提示找不到exp文件,也没有问题,只要最终生成4个mexw64文件并添加到matlab的工作目录中即可。
安装验证
导入数据
load heart_scale.mat
- 若提示找不到文件,在解压的文件夹的根目录下
- 若提示文件格式不对,则是新版的数据做了一些改变,从这里下载数据再载入即可
读取数据集
libsvmread('heart_scale');
训练数据
model=svmtrain(heart_scale_label,heart_scale_inst)
预测
[predict_label,accuracy]=svmpredict(heart_scale_label,heart_scale_inst,model)
注意:
在新版本libsvm-3.21中,需要将预测改为以下代码才能正常运行
[predict_label,accuracy , decision_values]=libsvmpredict(heart_scale_label,heart_scale_inst,model , '-b 0')
输出需要是三个变量。