美文网首页
Java使用LibSVM(2)

Java使用LibSVM(2)

作者: 7ason | 来源:发表于2019-04-19 19:09 被阅读0次

    参数说明

    1、svm_train()

    用法: svmtrain [options] training_set_file [model_file]

    举个栗子

    其中,options为操作参数,可用的选项即表示的涵义如下所示:

    -s设置svm类型:

    0 – C-SVC

    1 – v-SVC

    2 – one-class-SVM

    3 –ε-SVR

    4 – n - SVR

    -t设置核函数类型,默认值为2

    0 --线性核:u'*v

    1 --多项式核:(g*u'*v+coef0)degree

    2 -- RBF核:exp(-γ*||u-v||2)

    3 -- sigmoid核:tanh(γ*u'*v+coef0)

    -d degree:设置多项式核中degree的值,默认为3

    -gγ:设置核函数中γ的值,默认为1/k,k为特征(或者说是属性)数;

    -r coef 0:设置核函数中的coef 0,默认值为0;

    -c cost:设置C-SVC、ε-SVR、n - SVR中从惩罚系数C,默认值为1;

    -n v:设置v-SVC、one-class-SVM与n - SVR中参数n,默认值0.5;

    -pε:设置v-SVR的损失函数中的e,默认值为0.1;

    -m cachesize:设置cache内存大小,以MB为单位,默认值为40;

    -eε:设置终止准则中的可容忍偏差,默认值为0.001;

    -h shrinking:是否使用启发式,可选值为0或1,默认值为1;

    -b概率估计:是否计算SVC或SVR的概率估计,可选值0或1,默认0;

    -wi weight:对各类样本的惩罚系数C加权,默认值为1;

    -v n:n折交叉验证模式;

    model_file:可选项,为要保存的结果文件,称为模型文件,以便在预测时使用。

    默认情况下,只需要给函数提供一个样本文件名就可以了,但为了能保存结果,还是要提供一个结果文件名,比如:test.model,则命令为:

    svmtrain test.txt test.model

    2、svm_train()运行控制台输出

    运行svm_train()后,结果如下图

    默认情况

    #iter为迭代次数

    nu是你选择的核函数类型的参数

    obj为SVM文件转换为的二次规划求解得到的最小值(也有说对偶SVM问题的最佳目标值)

    rho为判决函数的偏置项b

    nSV为标准支持向量个数(0<a[i]<c)

    nBSV为边界上的支持向量个数(a[i]=c)

    Total nSV为支持向量总个数(对于两类来说,因为只有一个分类模型Total nSV = nSV,但是对于多类,这个是各个分类模型的nSV之和)

    * 什么是标准支持向量个数呢,就是这些特征中泛化能力最强的部分,鲁棒性最强。换句话说就是代表能力最强的。因此,它的占比不能太高,一般不高于80%,如高于这个值,则需调整特征的提取。

    3、train-model文件

    svm_type c_svc //所选择的svm类型,默认为c_svc

    kernel_type rbf  //训练采用的核函数类型,此处为RBF核

    gamma 0.0769231  //RBF核的参数γ

    nr_class 2        //类别数,此处为两分类问题

    total_sv 132      //支持向量总个数

    rho 0.424462      //判决函数的偏置项b

    label 1 -1        //原始文件中的类别标识

    nr_sv 64 68      //每个类的支持向量机的个数

    SV                //以下为各个类的权系数及相应的支持向量

    1 1:0.166667 2:1 3:-0.333333 … 10:-0.903226 11:-1 12:-1 13:1

    0.5104832128985164 1:0.125 2:1 3:0.333333 … 10:-0.806452 12:-0.333333 13:0.5

    ………..

    -1 1:-0.375 2:1 3:-0.333333…. 10:-1 11:-1 12:-1 13:1

    -1 1:0.166667 2:1 3:1 …. 10:-0.870968 12:-1 13:0.5

    相关文章

      网友评论

          本文标题:Java使用LibSVM(2)

          本文链接:https://www.haomeiwen.com/subject/nyucgqtx.html