libsvm基本使用指南

来源:互联网 发布:开票软件主程序打不开 编辑:程序博客网 时间:2024/06/10 02:30
转载自:http://blog.sina.com.cn/s/blog_710435680100nvoy.html

LIBSVM 使用的一般步骤是:

  1) 按照LIBSVM软件包所要求的格式准备数据集;
  2) 对数据进行简单的缩放操作;
  3) 考虑选用RBF 核函数;
  4) 采用交叉验证选择最佳参数C与g ;
  5) 采用最佳参数C与g 对整个训练集进行训练获取支持向量机模型;

  6) 利用获取的模型进行测试与预测。

Svmtrain使用方法

  Svmtrain(训练建模)的用法:svmtrain [options] training_set_file [model_file]

  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 – 多项式:(r*u'v + coef0)^degree

  2 – RBF函数:exp(-r|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类型中没有也不会产生影响,程序不会接受该参数;如果应有的参数设置不正确,参数将采用默认值。

  training_set_file是要进行训练的数据集;model_file是训练结束后产生的模型文件,文件中包括支持向量样本数、支持向量样本以及lagrange系数等必须的参数;该参数如果不设置将采用默认的文件名,也可以设置成自己惯用的文件名。

Svmpredict使用方法

  Svmpredict(使用已有的模型进行预测)的用法:svmpredict test_file model_file output_file

  model_file是由svmtrain产生的模型文件;

  test_file是要进行预测的数据文件;

  Output_file是svmpredict的输出文件。

  svm-predict没有其它的选项。

举例说明

  svmtrain -s 0 -c 1000 -t 1 -g 1 -r 1 -d 3 data_file

  训练一个由多项式核(u'v+1)^3和C=1000组成的分类器。

  svmtrain -s 1 -n 0.1 -t 2 -g 0.5 -e 0.00001 data_file

  在RBF核函数exp(-0.5|u-v|^2)和终止允许限0.00001的条件下,训练一个?-SVM (? = 0.1)分类器。

  svmtrain -s 3 -p 0.1 -t 0 -c 10 data_file

  以线性核函数u'v和C=10及损失函数?= 0.1求解SVM回归。

  输出如下:

  optimization finished, #iter

  迭代次数

  epsilon =

  二次规划的终止条件

  obj = ,

  obj,就是那个二次规划的最小值吧

  rho =

  判决函数的常数向

  nSV = ,

  支持向量的个数

  本部分列出几篇关于LIBSVM的重要论文。

  libsvm:a library for Support Vector Machines

  A practical guide to SVM classification

  Training and Testing Low-degree Polynomial Data Mappings via Linear SVM

  Working Set Selection Using Second Order Information for Training Support Vector Machines

原创粉丝点击