• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

使用LIBSVM工具实现样本分类预测——MatLab

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

准备工作:

  1. https://www.csie.ntu.edu.tw/~cjlin/libsvm/,下载LIBSVM;(LIBSVM工具相较于MATLAB自带的工具:1).支持多分类及回归(‘-s 0’ ,‘-s 1' -> 多分类'-s 3';'-s 4' -> 回归;'-s 2' -> one-class SVM),matlab自带的仅支持二分类,且不支持回归2).支持核函数种类多样(linear;polynomial;RBF(radial basis function);sigmoid;precomputed kernel)3).解决算法是SMO(序列最小化),matlab自带的三种SMO,QP(经典二次规划),LS;4).能够调节RBF核函数的参数,matlab自带的不能调节)
  2. 将libsvm文件夹设为matlab搜索路径,并进入.../libsvm-3.xx/matlab目录; 
  3. 运行mex -setup,选择编译器(前提是要安装有C++编译器,如VS2010)
  4. 命令窗口输入:make,生成四个文件:libsvmread.mexw32,libsvmwrite.mexw32,svmtrain.mexw32,svmpredict.mexw32(原程序是C++编译的,这四个文件是编译后包含了能够在matlab环境下运行的算法)

接下来便可以进行数据分类了:

  1. 在.../libsvm3.xx目录下运行:[label,inst] = libsvmread('heart_scale')(’heart_scale‘默认在libsvm主目录下,且libsvm要求有参数接受读取的结果,读取结果为:inst:270*13\label:270*1)
  2. 运行:model = svmtrain(label,inst)(训练函数,由于matlab自带有svmtrain函数,因此需要进入matlab/toolbox/搜索svmtrain.m,将其改为svmtrain_matlab.m,否则会调用自带的svmtrain函数
  3. 其中:model.Paramaters = [-s,-t,-d,-g,-r](model的Paramaters输出了参数组)
  4. 运行:[predict,accuracy,probabilityEstimates] = svmpredict(label,inst,model)(利用模型预测所有样本,libsvm要求所有接受参数都填写,否则无输出)
  5. accuracy是一个3*1矩阵,

    86.6666666666667->准确度
    0.533333333333333->MSE(mean squared error)
    0.532639204545455->r^2(squared correlation coefficient)


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
matlab局部特征检测与提取(问题与特征)发布时间:2022-07-22
下一篇:
matlabGLCM发布时间:2022-07-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap