在看网上很多支持向量机的代码时,发现大家使用的很多都是svmtrain函数,但是在自己电脑上编译时就出现“svmtrain已删除的错误”,这是因为2018版本之后的matlab中删除了svmtrain函数,但是在libsvm包中有svmtrain及svmpredict函数,我们可以通过安装libsvm包解决使用不了svmtrain的问题。
解决方法如下:
1.下载libsvm包
工具箱下载地址:LIBSVM -- A Library for Support Vector Machines (ntu.edu.tw)
选择对应的语言,我们这里需要的是matlab里的libsvm包,因此选择matlab语言:
点击右方的蓝色链接,跳转到如下界面:
点击zip file进行下载。
2. 下载后,将其解压,并移动到matlab工具箱文件夹toolbox中
3.在matlab设置路径中将该文件夹添加进去
点击添加文件夹,把第2步路径中的libsvm添加进去(图片显示已经添加好的情况) ,
记得点击保存,保存后才有效。
4.编译
打开刚刚添加的libsvm路径下的matlab中main.m进行编译
在命令行窗口输入mex -setup,
在命令行输入make
这时左边文件夹中生成四个新文件
将这四个文件复制到 windows中替换
5.检验
在libsvm文件夹中找到heart_scale数据集,复制到matlab文件夹中
在命令行输入下列代码
[heart_scale_label,heart_scale_inst]=libsvmread('heart_scale');
model = svmtrain(heart_scale_label,heart_scale_inst) ;
[predict_label,accuracy,dec_values] = svmpredict(heart_scale_label,heart_scale_inst,model);
如上图,显示运行结果准确率,表示libsvm包已安装好
6.运行
找个代码测试一下
显示svmtrain不在当前路径下,只需要点击更改matlab当前文件夹,就可以正常运行了