因为最近在看机器学习里面的SVM,动手安装libsvm的时候遇到了一些问题,这里整理一下。
本次安装的环境与相应的软件有:win7-64-bit, VS2013,MATLAB 2016b
下载地址为:https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载
下载后解压:得到一个libsvm-3.22文件夹,将其所在的位置添加到MATLAB的路径中,并将里面的Windows文件夹添加到MATLAB的路径中,如:
在MATLAB命令窗口输入mex –setup C++ ,如
再在命令行输入make,执行;
再将子文件夹matlab中生成的libsvmread.mexw6,libsvmwrite.mexw64,svmpredict.mexw64,svmtrain.mexw64
复制到子文件夹windows目录中,全部替换
(此时这里没有替换,在输入执行svmtrain可能会如下报错:MEX-file 'E:\ProgramFiles\matlab\R2016b\toolbox\windows\svmtrain.mexw64' 找不到指定模块)
替换掉后,输入svmtrain执行,如下所示是正确
下面进行测试:
在libsvm-3.22下有一个数据文件,名称为heart_scale。
这是一个libsvm格式的数据文件。可使用libsvmread函数将其转化为matlab格式。
一次输入以下命令:
[heart_scale_label,heart_scale_inst]=libsvmread('heart_scale');
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)
如下所示:
后面还有很多的数据,这里就不列举,测试就完成了
本人安装时参考了:http://apinetree.blog.51cto.com/714152/1560254 非常感谢前辈的总结