澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

使用小结,libsvm的使用方法

2019-11-04 作者:www.8455.com   |   浏览(130)

【百度康健】

Python 之 LIBSVM 使用小结

1卡塔 尔(阿拉伯语:قطر‎从python官网络下载windows下的装置包python-2.7.3.msi并设置

2)打开IDLE(python GUI),输入
>>>import sys
>>>sys.version
只要您的python是三九个人,将面世如下字符:
‘2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)]’
其有时候LIBSVM的python接口设置将特别轻巧。在libsvm-3.16文件夹下的windows文件夹中找到动态链接库libsvm.dll,将其增多到系统目录,如`C:WINDOWSsystem32’,即可在python中使用libsvm

3卡塔 尔(阿拉伯语:قطر‎假诺你的python是六九个人的,也正是说展开IDLE(python GUI),输入
>>>import sys
>>>sys.version
并发如下字符:
'2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)]'
这儿你须求首先本身编译64个人的动态链接库libsvm.dll。方法如下:
在程体系表中的Microsoft Visual Studio 二〇〇九/Visual Studio Tools下找到Visual Studio x64 Win64 Command Prompt(二〇〇八),注意一定倘使60个人的command prompt
cd到LIBSVM所在文件夹libsvm-3.16
输入nmake -f Makefile.win clean all
那儿libsvm-3.16的windows目录下将扭转陆十七人的动态链接库。将新生成的libsvm.dll复制到系统目录(譬如`C:WINDOWSsystem32')即可。

澳门新萄京官方网站 1

 

=============================================================================
================================牛逼闪闪的分水岭================================

=============================================================================

4卡塔尔轻巧SVM操作直接照此步骤落成。
打开IDLE
>>>import os
>>>os.chdir(‘C:Program Fileslibsvm-3.16python’)
>>>from svmutil import *
>>> y, x = svm_read_problem(‘../heart_scale’)
>>> m = svm_train(y[:200], x[:200], ‘-c 4’)
>>> p_label, p_acc, p_val = svm_predict(y[200:], x[200:], m)

5卡塔 尔(英语:State of Qatar)python接口的认证
在libsvm-3.16的python文件夹下重要不外乎了多个文件svm.py和svmutil.py。
svmutil.py接口首要富含了high-level的函数,那么些函数的行使和LIBSVM的MATLAB接口轮廓相同
svmutil中关键含有了以下多少个函数:
svm_train() : train an SVM model
svm_predict() : predict testing data
svm_read_problem() : read the data from a LIBSVM-format file.
svm_load_model() : load a LIBSVM model.
svm_save_澳门新萄京官方网站,model() : save model to a file.
evaluations() : evaluate prediction results.
svm.py接口重要不外乎了有的low-level的行使。在svm.py中动用了python内置的ctypes库,因此python能够一向访谈svm.h中定义的C结商谈接口函数。svm.py首要运用了几个数据结构svm_node, svm_problem, svm_parameter和svm_model。

 

之 LIBSVM 使用小结 1卡塔 尔(英语:State of Qatar)从python官英特网下载windows下的设置包python-2.7.3.msi并安装 2卡塔 尔(阿拉伯语:قطر‎张开IDLE(python GUI),输入 import sys sys.version 如若您的py...

正文讲使用贵州大学林智仁(Lin Chih-Jen)助教等开采设计开采设计的一个总结、易用的SVM方式识别与回归的软件包,本文将利用svmlib在python下的版本对其行使办法开展总计:

  LIBSVM是青海大学林智仁(Lin Chih-Jen)助教等开荒设计的三个大约、易于使用和急忙有效的SVM形式识别与回归的软件包,他不光提供了编写翻译好的可在Windows类别系统的实行文书,还提供了源代码,方便改革、修改以至在别的操作系统上利用;该软件对SVM所波及的参数调整相对少之甚少,提供了成都百货上千的暗中认可参数,利用这一个暗中同意参数可以减轻多数难题;并提供了相互作用核实(CrossValidation)的机能。该软件能够撤销C-SVM、ν-SVM、ε-SVPAJERO和ν-SV安德拉等主题素材,包蕴基于风流倜傥对意气风发算法的多类情势识别难点……

libsvm下载地址:

  假设你对libsvm还非常不够精通,提议先浏览下百度百科等对libsvm的介绍~

经过上风流罗曼蒂克篇博文转发了python下载libsvm的科目,在python30个人意况下行使libsvm

【C# Wrapper 动机】

libsvm在python版本提供了多少个模块,svmutil.py为高档次版本,svm.py为低档案的次序版本

  参加过四个体系,使用IDE是VS winform,工具包为EmguCV 2.4.10。我们精通OpenCV第22中学的svm部分是依附libsvm-2.6编纂的,该版本的libsvm已经能够estimate预测可能率了(libsvm首页的change log中有详细说明),可是OpenCV却遗弃了predictProbability。在切切实实的门类中,假若能够收获预测可能率新闻,那将对增进识别性有十分大的拔刀相助。然则,opencv2吐弃了识别可能率,包涵opencv3,笔者看源代码的svm部分也是基于libsvm-2.6改动的,也从没引入predictProbability。

在低等级次序版本svm.py中,未有对python内置库ctypes类型进行李包裹装,而svmutil.py则提供了总结易用的函数能够一贯运用

  由此,在EmguCV的ML知足不断的情事下,萌生了七个主张:

libsvm使用的步骤为:

    一是矫正OpenCV代码,然后再一次CMake获得cvextern.dll;

1卡塔 尔(英语:State of Qatar)将数据转发为libsvm工具使用的格式,

    二是一贯找此外的svm库。

<label1> <index1>:<value1> <index2>:<value2>     .....  <index L>:<valueL>

<label2> ......................

  首先尝试CMake。像OpenCV那样的大种类,CMake起来实在不便于,更而且是从零上马学CMake。在时刻不允许的法规下,只得走第二条路。找到libsvmSharp后,笔者如获宝贝。不过,非常的慢作者又再次大失所望了,因为实时性供给满意不断(EmguCV自带SVM能够在5ms内实现辨认预测,而libsvmSharp需求500ms卡塔 尔(阿拉伯语:قطر‎。

label可以为int或double类型

  那是为何?

2卡塔尔国进行数量变动,常用的数量变化为归一化,同一时候将training data 和 test data通过放缩在[-1,1]区间

  同样是C#对C 的wrapper,相仿都以基于libsvm,同样是对C 所编写翻译的dll的援引,成效竟相差百倍!本着意气风发颗学习的心,作者调整后生可畏探终究……

【待定】

【现有libsvm的C#/.Net版本】

3卡塔尔国采取核函数:优先思谋选取RBF核函数

  目前,LIBSVM拥有C、Java、Matlab、C#、Ruby、Python、普拉多、Perl、Common LISP、Labview等数十种语言版本。最常使用的是C、Matlab、Java和命令行(c语言编写翻译的工具)的本子。

4卡塔尔用cross-validation(交叉验证卡塔 尔(英语:State of Qatar)和grid-search获得最优的c和g

  首先大家看张libsvm官方网站首页上的截图:

方法风流倜傥:cross-validation(交叉验证卡塔 尔(英语:State of Qatar):

澳门新萄京官方网站 2

m = svm_train(y, x, '-v 2')

假使option参数-v为确切值,则svm_train重临model为一个数值,假若是svm分类则赶回交叉验证的正确率,-v 的值要大于等于2,平日选取5.若为svm回归则赶回结果与真实值的差距值平均方差

  下边,大家看看今后libsvm有哪些C#版本:

方法二:grid-search:

  1、SVM.NET by Matthewa Johnson

libsvm提供了多少个小工具包,此中囊括了tools中的grid.py,能够快捷选拔最优参数c和g

  二〇〇八年,洛桑联邦理工大学的马特hewa Johnson硕士将SVM.NET更新到了V2.89,也正是前几天的摩登版本。无语以后不FQ竟已经找不到SVM.NET的原生版了。那份神秘感使本身认为,这么些C#本子的libsvm应该是材质最高的。

$ python grid.py svmguide1.scale

2.0 2.0 96.8922

(Best C=2.0, γ=2.0 with five-fold cross-validation rate=96.8922%)

  后人有在V2.89的底工上做一些改变,提议了:SVM.NET with Parallel Optimization。相关描述为:When finding parameters, C and Gamma, in Grid-search algorithm using ParameterSelection.PGrid instead of the original ParameterSelection.Grid will increase the calculation speed.

5卡塔尔使用最优参数C和g去练习training set

  2、NSVM by Joannes

6)测试:

澳门新萄京官方网站 3

在svmutil.py,可应用函数svm_predict拿到分类正确率

    3年时光,却唯有2下载量,何其惨淡……好吧,也许你也像笔者肖似主观臆断了。

p_label, p_acc, p_val = svm_predict(y, , m)

3、KMLib(Kernel Machine Library with GPU SVM solver in .Net) by Krzysztof Sopyła

#p_labels: a list of predicted labels,预测种类

  Key Features

#p_acc: a tuple including accuracy (for classification), mean squared error, and squared correlation coefficient (forregression),无误率,绝对误差的均方差,和相关周密平方

    • .Net implementation
    • Parallel kernel implementation
    • SVM CUDA acceleration – kernels and solver
    • CUDA SVM with sparse data formats: CSR, Ellpack-R, Sliced-Ellpack
    • For non commercial and academic use: Free MIT license when use please cite: Bibtex CUDA SVM CSR

#p_val:a list of decision values or probability estimates

  其它,还会有一点亟待强调的是,它是基于libsvm的java版本转变过来的。也正因如此,笔者深感用起来恐怕会略微麻烦,故并未有选择。

上边介绍一下livsvm在python中的具体使用方式:

4、libsvmSharp by ccerhan

第一介绍svmutil.py函数使用

  选取它的说辞相当粗略,有自然的下载量(从众心境又最初生事了!卡塔尔下载方便,用VS的Nuget package,通过命令“PM> Install-Package LibSVMsharp”即下载到本地。

>>>from svmutil import *

#读取LIBSVM数据,分别存入y,x列表,个中y为品种,x为锻炼样板

>>>y, x = svm_read_problem(r'E:ProjectsPythonsvmlibheart_scale')

#使用前200个数据实行锻练,svm_使用小结,libsvm的使用方法。train重返的是model类,表示经过演练产生的model

>>>m =  svm_train(y[:200], x[:200], '-c 4' )

#动用后柒拾四个数据对练习的model m进行验证

>>>p_label, p_acc, p_val = svm_predict(y[200:], x[200:], m)

#可见将练习爆发的model保留成为文件

>>> svm_save_model('heart_scale.model', m)

#读取保存的model

使用小结,libsvm的使用方法。>>> m = svm_load_model('heart_scale.model')

>>> p_label, p_acc, p_val = svm_predict(y, x, m, '-b 1')

#赢得练习核准结果

>>> ACC, MSE, SCC = evaluations(y, p_label)

5、libsvm-net by Nicolas Panel

svmtuil.py中蕴含下列重要函数

  下载起来同样不行便于: NuGet package : PM> Install-Package libsvm.net,比起libsvmSharp有更加高的人气。

svm_train()        : 训练SVM模型

【分析libsvmSharp】

svm_predict()      : 预测测量试验数据结果

  为何libsvm夏普.dll如此低效?

svm_read_problem() : 读取数据.

  在反编译后的源代码中(稍后将介绍怎么着反编写翻译C#编写翻译出来的dll文件卡塔 尔(英语:State of Qatar),大家能够见到libsvmSharp所用的数据结构有:

svm_load_model()  : 加载SVM模型

    1、struct:svm_node、svm_model、svm_problem、svm_parameter;

svm_save_model()  :保存SVM模型.

    2、calss:SVMNode、SVMModel、SVMProblem、SVMParameter。

evaluations()      : 查验预测结果.

事实上,结构体能做的专门的学业,类完全也能做,如同结构体未有存在的必须。

 还可能有下列函数

  并且,可以观察各样的落到实处中,有非常多“结构体=>类”、“指针=>结构体”、“类=>指针”等那样的类型调换。大家理解,C#要引用C 所编写翻译的dll,用得最多的就是IntPtr那个数据结构。而libsvmSharp低效的因由,也正在于对指针的拍卖政策接纳不当,它只在要求传指针的时候,硬生生地用马尔斯hal类重新在内部存款和储蓄器中开荒当前数据结构大小的区域,并回到指针,美其名曰convert到指针。这种办法,无论是在时刻上依旧空中上,都有太多没供给的浪费。

svm_problem(y, x):重返二个problem类,成效同样记录y,x列表

  这里我们用libsvm中的svm_predict作为例子来传授。

svm_parameter('training_options'):重回一个parameter类,成效是记录参数接纳

  在libsvm.dll(该dll由C 编写翻译获得卡塔尔中,函数为:

上边介绍下行使进度中涉嫌到的有的参数函数:

 double svm_predict(const svm_model *model, const svm_node *x)

Options:可用的选项即意味着的涵义如下

  在libsvmSharp.dll(该dll由C#编译获得卡塔 尔(英语:State of Qatar)中,大家那样评释它:

-s   svm类型:SVM设置类型(默许0)

 [DllImport("libsvm.dll", CallingConvention = CallingConvention.Cdecl)]
 public static extern double svm_predict(IntPtr model, IntPtr x);

0 -- C-SVC

  DllImport时,越来越多关于C 数据结构到C#数据结构的新闻请读者查阅资料获得。由上可知,IntPtr是个很主要的数据结构,由它证明的变量实际上是八个指针值(即内部存款和储蓄器地址值卡塔 尔(阿拉伯语:قطر‎。第二个参数IntPtr model,必要传入model所在内部存款和储蓄器区域的地点,第二个参数IntPtr x,供给传入特征节点数组所在内存区域之处。下边,大家看看libsvmSharp是怎么使用那几个函数的:

1 -- v-SVC

 1         public static double Predict(SVMModel model, SVMNode[] x)
 2         {
 3             if (model == null)
 4             {
 5                 throw new ArgumentNullException("model");
 6             }
 7             if (x == null)
 8             {
 9                 throw new ArgumentNullException("x");
10             }
11             IntPtr intPtr = SVMModel.Allocate(model);
12             double result = SVM.Predict(intPtr, x);
13             SVMModel.Free(intPtr);
14             return result;
15         }
16 
17         public static double Predict(IntPtr ptr_model, SVMNode[] x)
18         {
19             if (ptr_model == IntPtr.Zero)
20             {
21                 throw new ArgumentNullException("ptr_model");
22             }
23             if (x == null)
24             {
25                 throw new ArgumentNullException("x");
26             }
27             List<SVMNode> list = (from a in x
28             select a.Clone()).ToList<SVMNode>();
29             list.Add(new SVMNode(-1, 0.0));
30             IntPtr intPtr = SVMNode.Allocate(list.ToArray());
31             double result = libsvm.svm_predict(ptr_model, intPtr);
32             SVMNode.Free(intPtr);
33             return result;
34         }

2–一类SVM

  留意的您有未有察觉什么难题?看不懂?究竟本身是以点带面。然则,请看第11行,每一次调用都要双重给model分配内存哦!再如,第27、28、29、30行,在熟知C 的人看来,that's what?参数字传送进来的可不是数组名吗,干嘛如此狼狈周章?内部存款和储蓄器不会被玩坏吗?

3 -- e -SVR

  一切都以因为C#有指针,但不是充足咱们所熟稔的指针。C#未有像Java同样完全撤废指针,但为了代码安全构思而减弱指针。C#是面向对象的言语,里面其余风姿罗曼蒂克种数据结构都并未有指针那一品质,除非您自个儿在定义数据结构时,将指针作为成员变量。大家所熟习的EmguCV正是这么达成对OpenCV的wrapper的。

4 -- v-SVR

【开始libsvm的C# Wrapper之旅】

-t   核函数类型:核函数设置类型(暗中同意2)

  很好,我们得以进入正题了。小编将以wrapper libsvm为例,分步骤疏解整个进程。读者能够触类旁通,希望本文能够帮助您加深你对跨语言编制程序的领悟。

0–线性:u'v

  1.wrapper第一步(准备)

1–多项式:(r*u'v coef0)^degree

  获取你要wrapper的dll(由C 编写翻译得到卡塔尔,最棒有源代码,当然有参考手册也能够,但是只要除去dll的名字,对该dll一无所知,那或然就不可能了。

2–RBF函数:exp(-gamma|u-v|^2)

  安装C#的dll反编写翻译工具,这里推荐ILSpy。为何要安装?比起自个儿乌黑中寻觅,假使有能够仿照效法借鉴的能源,不以为意是何其缺憾的意气风发件事呀。EmguCV真的称得上wrapper中的精粹。

3–sigmoid:tanh(r*u'v coef0)

  1. wrapper第二步(DllImport)

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

  首先,VS新建C#工程,项目种类选项类库,那样结尾生成技术方案后,便得以在bin/Debug目录下获得实用的dll文件了。笔者将项目命名字为libsvmSharpCyc。

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

  其次,增添须求wrapper的C dll文件。右键单击实施方案财富微处理机中的libsvmSharpCyc,然后增加现成项,把libsvm.dll增多进项目。

-r   coef0:核函数中的coef0设置(针对多项式/sigmoid核函数)((暗中认可0)

  接着,新建类,用于DllImport。小编建的是LsInvoke.cs,能够像下图所示那样,把想要使用的函数方法给Import进来:

-c cost:设置C-SVC,e -SV奥迪Q5和v-SVSportage的参数(损失函数)(暗中同意1)

澳门新萄京官方网站 4

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

  该进度中,DllImport要什么样使用,感兴趣的读者可机关学习,这里须要小心的是C 函数中的数据结构到C#中的数据结构是有炫耀关系的,上边附上一张dll援引常用转变表:

-p p:设置e -SVQX56中损失函数p的值(暗中认可0.1)

            C              C#
        =====================================
        WORD              ushort
        DWORD             uint
        UCHAR             int/byte   大部分情况都可以使用int代替,而如果需要严格对齐的话则应该用bytebyte 
        UCHAR*            string/IntPtr
        unsigned char*    [MarshalAs(UnmanagedType.LPArray)]byte[]/?(Intptr)
        char*             string
        LPCTSTR           string
        LPTSTR            [MarshalAs(UnmanagedType.LPTStr)] string
        long              int
        ulong             uint
        Handle            IntPtr
        HWND              IntPtr
        void*             IntPtr
        int               int
        int*              ref int
        *int              IntPtr
        unsigned int      uint
        COLORREF          uint

-m cachesize:设置cache内部存款和储蓄器大小,以MB为单位(私下认可40)

3、wrapper第三步(数据结构卡塔 尔(英语:State of Qatar)

-e eps:设置允许的安息判据(私下认可0.001)

  这一步是无比主要的一步,在C#中新建数据结构,必供授予C 中的数据结构相平等,不然境遇不恐怕预想的难点。

-h shrinking:是不是使用启迪式,0或1(私下认可1)

  前文已经简单地介绍过libsvm的数据结构了。这里再一次一下:

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

 1 struct svm_node
 2 {
 3     int index;
 4     double value;
 5 };
 6 
 7 struct svm_problem
 8 {
 9     int l;
10     double *y;
11     struct svm_node **x;
12 };
13 
14 enum { C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR };    /* svm_type */
15 enum { LINEAR, POLY, RBF, SIGMOID, PRECOMPUTED }; /* kernel_type */
16 
17 struct svm_parameter
18 {
19     int svm_type;
20     int kernel_type;
21     int degree;    /* for poly */
22     double gamma;    /* for poly/rbf/sigmoid */
23     double coef0;    /* for poly/sigmoid */
24 
25     /* these are for training only */
26     double cache_size; /* in MB */
27     double eps;    /* stopping criteria */
28     double C;    /* for C_SVC, EPSILON_SVR and NU_SVR */
29     int nr_weight;        /* for C_SVC */
30     int *weight_label;    /* for C_SVC */
31     double* weight;        /* for C_SVC */
32     double nu;    /* for NU_SVC, ONE_CLASS, and NU_SVR */
33     double p;    /* for EPSILON_SVR */
34     int shrinking;    /* use the shrinking heuristics */
35     int probability; /* do probability estimates */
36 };
37 
38 //
39 // svm_model
40 // 
41 struct svm_model
42 {
43     struct svm_parameter param;    /* parameter */
44     int nr_class;        /* number of classes, = 2 in regression/one class svm */
45     int l;            /* total #SV */
46     struct svm_node **SV;        /* SVs (SV[l]) */
47     double **sv_coef;    /* coefficients for SVs in decision functions (sv_coef[k-1][l]) */
48     double *rho;        /* constants in decision functions (rho[k*(k-1)/2]) */
49     double *probA;        /* pariwise probability information */
50     double *probB;
51     int *sv_indices;        /* sv_indices[0,...,nSV-1] are values in [1,...,num_traning_data] to indicate SVs in the training set */
52 
53     /* for classification only */
54 
55     int *label;        /* label of each class (label[k]) */
56     int *nSV;        /* number of SVs for each class (nSV[k]) */
57                 /* nSV[0]   nSV[1]   ...   nSV[k-1] = l */
58     /* XXX */
59     int free_sv;        /* 1 if svm_model is created by svm_load_model*/
60                 /* 0 if svm_model is created by svm_train */
61 };

-v n: n-fold交互作用查验方式,n为fold的个数,必得大于等于2

  对应地,我们在C#中国建工总公司立数据结构:

当中-g选项中的k是指输入数据中的属性数。option -v随机地将数据剖分为n部

    public struct svm_node
    {
        /// <summary>
        /// 索引
        /// </summary>
        public int index;

        /// <summary>
        /// 值
        /// </summary>
        public double value;

        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="i"></param>
        /// <param name="v"></param>
        public svm_node(int i,double v)
        {
            this.index = i;
            this.value = v;
        }
        public bool Equals(svm_node x)
        {
            return this.index.Equals(x.index) && this.value.Equals(x.value);
        }
    }
    public struct svm_problem
    {
        /// <summary>
        /// 支持向量个数
        /// </summary>
        public int l;

        /// <summary>
        /// 标签值
        /// </summary>
        public IntPtr y;

        /// <summary>
        /// 节点情况
        /// </summary>
        public IntPtr x;
    }
    ……

1卡塔尔国要是您要输出类的可能率,一定要有-b参数

  可能有读者会问,结构体你加构造函数和别的函数干嘛?这实际是为了现在好简化代码。不然,每趟对象创设于赋值分开操作有一点点辛劳。

2卡塔 尔(英语:State of Qatar)C日常可以筛选为:10^t , t=- 4..4正是0.0001到10000

  举办到前不久,大家只是完成了数据结构搭建的一小部分,上面是从EmguCV中学习到的精髓部分!将要下篇作介绍~

接受的越大,表示对不当例惩罚程度越大,只怕会促成模型过拟合

在LIBSVM中-t用来钦赐核函数类型(默许值是2卡塔尔。

3卡塔 尔(阿拉伯语:قطر‎与核函数相呼应的libsvm参数:

(1卡塔 尔(阿拉伯语:قطر‎对于线性核函数,未有特意须要安装的参数

(2卡塔尔国卡塔 尔(阿拉伯语:قطر‎对于多项式核函数,有三个参数。-d用来安装多项式核函数的参天此项目和次数数,也便是公式中的d,暗许值是3。-g用来安装核函数中的gamma参数设置,也正是公式中的第叁个r(gamma),暗许值是1/k(k是种类数卡塔尔。-r用来安装核函数中的coef0,也正是公式中的第三个r,默许值是0。

(3卡塔 尔(英语:State of Qatar)对于RBF核函数,有贰个参数。-g用来设置核函数中的gamma参数设置,也正是公式中的第三个r(gamma),默许值是1/k(k是体系数卡塔 尔(阿拉伯语:قطر‎。

(4卡塔尔对于sigmoid核函数,有七个参数。-g用来安装核函数中的gamma参数设置,也正是公式中的第叁个r(gamma),暗中同意值是1/k(k是体全面卡塔尔国。-r用来设置核函数中的coef0,也正是公式中的第叁个r,默许值是0。

运转结果中显得的多少个参数含义为:

rho 为宣判函数的常数项b#iter为迭代次数,nu 与日前的操作参数-n n 相仿,obj为SVM文件转变为的一遍规划求解获得的矮小值,nSV 为匡助向量个数,nBSV为界线上的帮衬向量个数,Total nSV为永葆向量总个数。

上面介绍下LIBSVM提供的多少个工具包

svm-scale:

那是能力所能达到放缩输入数据的工具

grid.py:

放缩后的数量开展最优参数选拔

subset.py

活动采取子集减少训练量

checkdata.py

自己斟酌是还是不是切合LIBSVM格式

本文由澳门新萄京官方网站发布于www.8455.com,转载请注明出处:使用小结,libsvm的使用方法

关键词: