这里的LIBSVM是一个由台湾大学林智仁(Lin Chih-Jen)教授等开发的SVM模式识别与回归的软件包,使用简单,功能强大,本文主要介绍其在Matlab中的使用。

注意不是matlab自带的svm实现函数,自带的svm实现函数仅支持分类问题,不支持回归问题;而libsvm不仅支持分类问题,亦支持回归问题,参数可调节,功能更强大。

libsvm的配置很简单,只需要下载高级版本的matlab和libsvm,VC或VS编译实现很简单的,这里就不细讲了。

两个步骤:训练建模——>模型预测

分类 model = svmtrain(trainlabel, traindata, ‘-s 0 -t 2 -c 1.2 -g 2.8’);

回归 model = svmtrain(trainlabel, traindata, ‘-s 3 -t 2 -c 2.2 -g 2.8 -p 0.01’);

参数说明:

-s svm类型:SVM设置类型(默认0)
  0 – C-SVC
  1 --v-SVC
  2 – 一类SVM
  3 – e -SVR
  4 – v-SVR

-t 核函数类型:核函数设置类型(默认2)
  0 – 线性:u’v
  1 – 多项式:(ru’v + coef0)^degree
  2 – RBF函数:exp(-r|u-v|^2)
  3 –sigmoid:tanh(r
u’v + coef0)

-g r(gama):核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)

-c cost:设置C-SVC,e -SVR和v-SVR的参数(损失函数)(默认1),惩罚系数

-n nu:设置v-SVC,一类SVM和v- SVR的参数(默认0.5)

-p p:设置e -SVR 中损失函数p的值(默认0.1)

-d degree:核函数中的degree设置(针对多项式核函数)(默认3)

-wi weight:设置第几类的参数C为weight*C(C-SVC中的C)(默认1)

-v n: n-fold交互检验模式,n为fold的个数,必须大于等于2

libsvm使用误区----------------------

(1) 直接将训练集合和测试集合简单归一化到[0,1]区间,可能导致实验结果很差。

(2) 如果样本的特征数非常多,那么就不必使用RBF核将样本映射到高维空间。
a) 在特征数非常多的情况下,使用线性核,结果已经非常好,并且只需要选择参数C即可。
b) 虽然说RBF核的结果至少比线性核好,前提下搜索整个的空间。
(3) 样本数<<特征数的情况:推荐使用线性核,可以达到与RBF同样的性能。

(4) 样本数和特征数都非常多:推荐使用liblinear,更少的时间和内存,可比的准确率。

(5) 样本数>>特征数:如果想使用线性模型,可以使用liblinear,并且使用-s 2参数

English:
libsvm_options:
-s svm_type : set type of SVM (default 0)
0 – C-SVC
1 – nu-SVC
2 – one-class SVM
3 – epsilon-SVR
4 – nu-SVR
-t kernel_type : set type of kernel function (default 2)
0 – linear: u’v
1 – polynomial: (gamma
u’v + coef0)^degree
2 – radial basis function: exp(-gamma
|u-v|^2)
3 – sigmoid: tanh(gamma*u’*v + coef0)
4 – precomputed kernel (kernel values in training_instance_matrix)
-d degree : set degree in kernel function (default 3)
-g gamma : set gamma in kernel function (default 1/k)
-r coef0 : set coef0 in kernel function (default 0)
-c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default 1)
-n nu : set the parameter nu of nu-SVC, one-class SVM, and nu-SVR (default

0.5)
-p epsilon : set the epsilon in loss function of epsilon-SVR (default 0.1)
-m cachesize : set cache memory size in MB (default 100)
-e epsilon : set tolerance of termination criterion (default 0.001)
-h shrinking: whether to use the shrinking heuristics, 0 or 1 (default 1)
-b probability_estimates: whether to train a SVC or SVR model for

probability estimates, 0 or 1 (default 0)
-wi weight: set the parameter C of class i to weight*C, for C-SVC (default

-v n: n-fold cross validation mode

Chinese:
Options:可用的选项即表示的涵义如下
  -s svm类型:SVM设置类型(默认0)
  0 – C-SVC
  1 --v-SVC
  2 – 一类SVM
  3 – e -SVR
  4 – v-SVR
  -t 核函数类型:核函数设置类型(默认2)
  0 – 线性:u’v
  1 – 多项式:(ru’v + coef0)^degree
  2 – RBF函数:exp(-gamma|u-v|^2)
  3 –sigmoid:tanh(r
u’v + coef0)
  -d degree:核函数中的degree设置(针对多项式核函数)(默认3)
  -g r(gama):核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)(默认

1/ k)
  -r coef0:核函数中的coef0设置(针对多项式/sigmoid核函数)((默认0)
  -c cost:设置C-SVC,e -SVR和v-SVR的参数(损失函数)(默认1)
  -n nu:设置v-SVC,一类SVM和v- SVR的参数(默认0.5)
  -p p:设置e -SVR 中损失函数p的值(默认0.1)
  -m cachesize:设置cache内存大小,以MB为单位(默认40)
  -e eps:设置允许的终止判据(默认0.001)
  -h shrinking:是否使用启发式,0或1(默认1)
  -wi weight:设置第几类的参数C为weight*C(C-SVC中的C)(默认1)
  -v n: n-fold交互检验模式,n为fold的个数,必须大于等于2
  其中-g选项中的k是指输入数据中的属性数。option -v 随机地将数据剖分为n部

分并计算交互检验准确度和均方根误差。以上这些参数设置可以按照SVM的类型和核函

数所支持的参数进行任意组合,如果设置的参数在函数或SVM类型中没有也不会产生影

响,程序不会接受该参数;如果应有的参数设置不正确,参数将采用默认值。

————————————————
版权声明:本文为CSDN博主「好多鱼哦」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shuke1991/article/details/5348757

matlab中libsvm的svmtrain函数用法相关推荐

  1. MATLAB中libsvm的svmtrain和svmpredict函数的使用方法与参数设置

    1. svmtrain()使用方法 示例: cmd = [' -t 2',' -s 3 -p 0.01']; model = svmtrain(train_label,train_data,cmd) ...

  2. matlab中find()函数用法

    一.基本用法 返回矩阵或向量中非零元素的索引 注意:matlab中下标从1开始 举例: (1)向量 返回非零元素下标 find(vector) x=[1 2 3 0 0 6 7 8 9]; find( ...

  3. Matlab中repmat、permute函数用法

    repmat函数用法 复制和平铺矩阵 函数repmat 格式:  B = repmat(A, m, n) %将矩阵A复制m*n块,即B由m*n块A平铺而成 B = repmat(A, [m n])%与 ...

  4. matlab中find、sub2ind函数用法

    [i,j,v]=find(A); 解释:i是A中非零元素的行索引(按一列一列的看,第一个非零元素在第几行,看完第一列再看第二列,依次) j是A中非零元素的列索引 v是A中非零元素的值 b=sub2in ...

  5. matlab中短时傅里叶变换tfrstft函数用法

    [TFR,T,F]=TFRSTFT(X,T,N,H,TRACE) X : 信号. T : 时间序列 (默认值 :1:length(X)). N : 频率点数 (默认值: length(X)). H : ...

  6. matlab repmate,MATLAB中“repmat”与“cat”函数的用法

    MATLAB中"repmat"与"cat"函数的用法 1. repmat函数 >> z=repmat(5,2,3) z = 5 5 5 5 5 5 ...

  7. matlab中trapz,MATLAB中trapz和cumtrapz函数

    这两个函数都是MATLAB中的内置函数,是基于梯形法则的数值积分公式 例如我们有函数y=x^3-2x-3,为了计算在[0,1]上的积分,可以这么做: 其中x和y分别是自变量和对应的值,trapz其实就 ...

  8. matlab中如何处理复数,matlab中复数的处理函数

    matlab中复数的处理函数 MATLAB 中复数的处理函数要说明复数的运算,先从解以下的二次方程式的复数根谈起上式的根有实部 (-2) 及虚部 (±3),我们就这个复数的表示法来说明 MATLAB的 ...

  9. MATLAB中abs和sqrt函数的使用方法

    MATLAB中abs和sqrt函数的使用方法 1.abs函数 ##作用:数值的绝对值和复数的幅值 ##基本用法:abs(x)函数是对数组元素进行绝对值处理的函数. 函数的定义域包括复数. 对于复数x= ...

最新文章

  1. python-requests官网_requests使用心得
  2. Android移动开发之【Android实战项目】DAY3-滑动侧边栏SlidingMenu
  3. legend3---2、网站的代码里面的/也是代表根目录
  4. mysql 分时统计_mysql中数据统计的技巧备忘录
  5. sql 与linq的转换
  6. mysql window怎么安装补丁_window下mysql安装步骤
  7. mybatis框架--学习笔记(上)
  8. 不要忽视任何小问题!!!一个XML的XPath的问题.....
  9. 使用 vue-cli 开发多页应用
  10. Codeforces Good Bye 2015 A. New Year and Days 水题
  11. HP-UX Oracle Ioctl ASYNC_CONFIG error=1
  12. 更为简单的Ctrl+S自动刷新浏览器工具-LinrF5
  13. 【实践】端智能在大众点评搜索推荐重排序的应用实践
  14. matlab struct 结构体
  15. [LeetCode]题解(python):016-3Sum Closest
  16. coolfire黑客入门教程系列之(八)最后部分!
  17. TextBox显示提示信息
  18. endnoteX9英文参考文献格式下载和导入
  19. 如何在html中在线编辑word文档,web版word在线编辑
  20. 用php表单写出梯形的面积,梯形面积

热门文章

  1. Moonbeam隆重推出您的个人开发小助手 — — Kapa.ai
  2. 英文求职信个人资料常用语
  3. 打造企业数智化管理新引擎,中国首份指标中台市场研究报告重磅发布!
  4. 漫画:三分钟了解什么是囚徒困境
  5. livorth的个人简历
  6. 【绝对干货】仿微信QQ设置图形头像裁剪,让你的App从此炫起来~
  7. R语言使用epiDisplay包的lroc函数可视化logistic回归模型的ROC曲线并输出诊断表、输出灵敏度、1-特异度、AUC值等、设置cex.axis参数自定义坐标轴数值刻度值的大小
  8. (转)cocos2d-X学习之坐标系统
  9. 外贸型企业网站的设计思路
  10. [2016陕西省赛B] Rui and her functions