美文网首页
svmtrain和svmpredict简介

svmtrain和svmpredict简介

作者: ililililijia | 来源:发表于2017-04-21 15:40 被阅读0次

分类:SVM

本文主要介绍了SVM工具箱中svmtrain和svmpredict两个主要函数:

(1)model= svmtrain(train_label, train_matrix, ['libsvm_options']);

其中:

train_label表示训练集的标签。

train_matrix表示训练集的属性矩阵。

libsvm_options是需要设置的一系列参数,各个参数可参见《libsvm参数说明.txt》,里面介绍的很详细,中英文都有的。如果用回归的话,其中的-s参数值应为3。

输出的结果为

optimization finished, #iter = 162

nu = 0.431029

obj = -100.877288, rho = 0.424462

nSV = 132, nBSV = 107

Total nSV = 132

其中,#iter为迭代次数,nu是你选择的核函数类型的参数,obj为SVM文件转换为的二次规划求解得到的最小值,rho为判决函数的偏置项b,nSV为标准支持向量个数,nBSV为边界上的支持向量个数(a[i]=c),Total nSV为支持向量总个数(对于两类来说,因为只有一个分类模型Total nSV = nSV,但是对于多类,这个是各个分类模型的nSV之和)。


model:是训练得到的模型,是一个结构体(如果参数中用到-v,得到的就不是结构体,对于分类问题,得到的是交叉检验下的平均分类准确率;对于回归问题,得到的是均方误差)。

Parameters: [5x1 double]  %结构体变量,依次保存的是 -s -t -d -g -r等参数

nr_class: 4    %分类的个数

totalSV: 39    %总的支持向量个数

rho: [6x1 double]   %b=-model.rho

Label: [4x1 double]

ProbA: []

ProbB: []

nSV: [4x1 double]  %每一类的支持向量的个数

sv_coef: [39x3 double] %支持向量的系数

SVs: [39x12 double] %具体的支持向量,以稀疏矩阵的形式存储

w*x+b=0 其中

w=model.SVs'*model.sv_coef

b=-model.rho

w是高维空间中分类 超平面的法向量,b是常数项。

(2)[predicted_label, accuracy/mse,decision_values/prob_estimates]

=svmpredict(test_label, test_matrix, model, ['libsvm_options']);

其中:

test _label表示测试集的标签(这个值可以不知道,因为作预测的时候,本来就是想知道这个值的,这个时候,随便制定一个值就可以了,只是这个时候得到的mse就没有意义了)。

test _matrix表示测试集的属性矩阵。

model是上面训练得到的模型。

libsvm_options是需要设置的一系列参数。

predicted_label表示预测得到的标签。

accuracy/mse是一个3*1的列向量,其中第1个数字用于分类问题,表示分类准确率;后两个数字用于回归问题,第2个数字表示mse;第三个数字表示平方相关系数(也就是说,如果分类的话,看第一个数字就可以了;回归的话,看后两个数字)。

decision_values/prob_estimates:第三个返回值,一个矩阵包含决策的值或者概率估计。对于n个预测样本、k类的问题,如果指定“-b 1”参数,则n x k的矩阵,每一行表示这个样本分别属于每一个类别的概率;如果没有指定“-b 1”参数,则为n x k*(k-1)/2的矩阵,每一行表示k(k-1)/2个二分类SVM的预测结果。

(3)训练的参数

LIBSVM训练时可以选择的参数很多,包括:

-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(gamma):核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)(默认1/k,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

以上这些参数设置可以按照SVM的类型和核函数所支持的参数进行任意组合,如果设置的参数在函数或SVM类型中没有也不会

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

相关文章

  • svmtrain和svmpredict简介

    分类:SVM 本文主要介绍了SVM工具箱中svmtrain和svmpredict两个主要函数: (1)model=...

  • lable vector and instance matrix

    最近在搞多核学习的时候用到了libsvm工具箱,做svmtrain和svmpredict的时候一直报错错误就是题目...

  • Java使用LibSVM(2)

    参数说明 1、svm_train() 用法:svmtrain [options] training_set_fil...

  • 使用matlab的svm(支持向量机)参数介绍

    svmtrain(1,2,3,4,5,6)可见该训练模型函数有6个参数的得到训练model。1.第一个是需要训练的...

  • 目录和简介

    作者简介:雪凝琼,一个行走于文学边缘的,渴望通过文字来排解纷扰,编织梦想的浪漫主义女性。生活是枯燥无味的,唯有文学...

  • 目录和简介

    基本概念 并发 同时拥有两个或者多个线程,如果程序在单核处理器上运行,多个线程将交替地换入或者换出内存,这些线程是...

  • Mybatis简介和入门

    MyBatis简介 MyBatis前身是Apache基金会的开源项目iBatis,在2010年该项目脱离Apach...

  • hadoop简介和配置

    Hadoop包含三个模块: 配置Hadoop

  • RPC和Dubbo简介

    RPC协议 RPC:远程过程调用,原则上来说系统间跨进程的调用都属于RPC范畴 RMI/HTTP/dubbo/Sp...

  • Redis和Shiro简介

    Redis 简介Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis...

网友评论

      本文标题:svmtrain和svmpredict简介

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