LibSVM26程序代码注释

合集下载

matlab中使用libsvm的使用方法

matlab中使用libsvm的使用方法

前段时间,gyp326曾在论坛里问libsvm如何在matlab中使用,我还奇怪,认为libsvm是C 的程序,应该不能。

没想到今天又有人问道,难道matlab真的能运行libsvm。

我到官方网站看了下,原来,真的提供了matlab的使用接口。

接口下载在:.tw/~cjlin/libsvm/index.html#matlab具体使用方法zip文件里有readme说明,我也按照说明尝试的试用了一下,方法介绍如下。

使用的接口版本:MATLABA simple MATLAB interfaceLIBSVM authors at National Taiwan University.2.89 .tw/~cjlin/libsvm/matlab/libsvm-mat-2.89-3.zip使用的运行环境为:matlab 7.0,VC++ 6.0,XP系统。

按照说明使用方法如下:1. 下载下来的借口包里有svm的一些源文件,没有可执行的exe文件,所以,必须先将svmtrain等源文件编译为matlab可以使用的dll等文件。

于是先选择编译器,如下:(也可以先尝试使用我们在windows平台下编译好的文件,放在同一文件夹中直接使用:/bbs/viewthread.php?tid=538&page=1&fromuid=3#pid1154)>> mex -setupPlease choose your compiler for building external interface (MEX) files:Would you like mex to locate installed compilers [y]/n? ySelect a compiler:[1] Digital Visual Fortran version 6.0 in C:\Program Files\Microsoft Visual Studio[2] Lcc C version 2.4 in D:\MATLAB7\sys\lcc[3] Microsoft Visual C/C++ version 6.0 in D:\Program Files\Microsoft Visual Studio[0] NoneCompiler: 3Please verify your choices:Compiler: Microsoft Visual C/C++ 6.0Location: D:\Program Files\Microsoft Visual StudioAre these correct?([y]/n): yTry to update options file: C:\Documents and Settings\jink2005.AISEMINA-D6623E\Application Data\MathWorks\MATLAB\R14\mexopts.batFrom template: D:\MATLAB7\BIN\WIN32\mexopts\msvc60opts.batDone . . .我选择使用VC 6.0,其他可能不行。

libsvm参数说明

libsvm参数说明

libsvm参数说明(实用版)目录1.引言2.LIBSVM 简介3.LIBSVM 参数说明4.使用 LIBSVM 需要注意的问题5.结束语正文1.引言支持向量机(Support Vector Machine, SVM)是一种非常强大和灵活的监督学习算法,它可以用于分类和回归任务。

在 SVM 的研究和应用中,LIBSVM 是一个非常重要的工具,它为 SVM 的实现和应用提供了强大的支持。

本文将对 LIBSVM 的参数进行详细的说明,以帮助读者更好地理解和使用这个工具。

2.LIBSVM 简介LIBSVM 是一个开源的 SVM 实现库,它提供了丰富的功能和接口,可以支持多种操作系统,包括 Windows、Linux 和 Mac OS 等。

LIBSVM 主要包括三个部分:svm-train、svm-predict 和 svm-plot。

svm-train 用于训练 SVM 模型,svm-predict 用于预测新数据,svm-plot 用于绘制各种图表,以便于观察和分析模型性能。

3.LIBSVM 参数说明LIBSVM 的参数设置对于模型的性能至关重要。

以下是一些常用的参数及其说明:- -train:用于指定训练数据的文件名。

- -test:用于指定测试数据的文件名。

- -model:用于指定模型文件的名称。

- -参数:用于设置 SVM 模型的参数,例如 C、核函数等。

- -cache-size:用于设置缓存大小,以加速训练过程。

- -tolerance:用于设置收敛阈值,控制训练过程的终止条件。

- -shrinking:用于设置是否使用启发式方法进行训练。

- -probability:用于设置是否计算预测概率。

4.使用 LIBSVM 需要注意的问题在使用 LIBSVM 时,需要注意以下问题:- 设置合适的参数:LIBSVM 的参数设置对模型性能有很大影响,需要根据具体问题和数据集进行调整。

- 特征选择:在实际应用中,特征选择对于模型性能至关重要。

libsvm参数说明

libsvm参数说明

libsvm参数说明摘要:一、libsvm 简介- 什么是libsvm- libsvm 的作用二、libsvm 参数说明- 参数分类- 参数详细说明- 核函数参数- 松弛参数- 惩罚参数- 迭代次数参数- 其他参数三、libsvm 参数调整- 参数调整的重要性- 参数调整的方法正文:【libsvm 简介】libsvm 是一款广泛应用于机器学习领域的开源软件,全称是“LIBSVM”,它提供了支持向量机(SVM)的完整实现,可以用于分类和回归等多种任务。

libsvm 不仅支持常见的数据集格式,还提供了丰富的API 接口,方便用户进行二次开发和应用。

libsvm 的主要作用是帮助用户解决高维数据分类和回归问题。

在面对高维数据时,传统的分类算法可能会遇到“维数灾难”,导致分类效果不佳。

而libsvm 通过使用核函数技术,将高维数据映射到低维空间,从而有效地解决了这个问题。

【libsvm 参数说明】libsvm 提供了丰富的参数供用户调整,以达到最佳分类效果。

这些参数主要分为以下几类:1.核函数参数:包括核函数类型(如线性核、多项式核、径向基函数核等)和核函数参数(如径向基函数核的核径宽)。

2.松弛参数:用于控制分类间隔的大小,对最终分类结果有一定影响。

3.惩罚参数:控制模型对误分类的惩罚力度,对分类效果有重要影响。

4.迭代次数参数:控制支持向量机算法的迭代次数,影响模型的收敛速度。

5.其他参数:如学习率、最小化目标函数的迭代次数等。

【libsvm 参数调整】参数调整是libsvm 使用过程中非常重要的一环,合适的参数设置可以使模型达到更好的分类效果。

参数调整的方法主要有以下几种:1.网格搜索法:通过遍历参数空间的各个点,找到最佳参数组合。

这种方法适用于参数空间较小的情况。

2.随机搜索法:在参数空间中随机选取一定数量的点进行遍历,找到最佳参数组合。

这种方法适用于参数空间较大,且网格搜索法效果不佳的情况。

3.贝叶斯优化法:利用贝叶斯理论,对参数进行加权调整,以提高搜索效率。

libsvm参数说明

libsvm参数说明

libsvm参数说明libsvm 参数说明.txt我的优点是:我很帅;但是我的缺点是:我帅的不明显。

什么是幸福?幸福就是猫吃鱼,狗吃肉,奥特曼打小怪兽!令堂可是令尊表姐?我是胖人,不是粗人。

English:libsvm_options:-s svm_type : set type of SVM (default 0)0 -- C-SVC1 -- nu-SVC2 -- one-class SVM3 -- epsilon-SVR4 -- nu-SVR-t kernel_type : set type of kernel function (default 2)0 -- linear: u'*v1 -- polynomial: (gamma*u'*v + coef0)^degree2 -- 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 (default0.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 1)-v n: n-fold cross validation mode====================================== ====================Chinese:Options:可用的选项即表示的涵义如下-s svm类型:SVM设置类型(默认0)0 -- C-SVC1 --v-SVC2 –一类SVM3 -- e -SVR4 -- v-SVR-t 核函数类型:核函数设置类型(默认2)0 –线性:u'v1 –多项式:(r*u'v + coef0)^degree2 – 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是指输入数据中的属性数。

libsvm使用说明_光环大数据培训机构

libsvm使用说明_光环大数据培训机构

libsvm使用说明_光环大数据培训机构libsvm简介LIBSVM 是台湾大学林智仁(Lin Chih-Jen)副教授等开发设计的一个简单、易于使用和快速有效的 SVM 模式识别与回归的软件包,他不但提供了编译好的可在 Windows 系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件还有一个特点,就是对 SVM 所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数就可以解决很多问题;并且提供了交互检验(Cross-SVM回归等问题,包括基于一对一算法的多类模式识别问题。

SVM 用于模式识别或回归时, SVM方法及其参数、核函数及其参数的选择,目前国际上还没有形成一个统一的模式,也就是说最优 SVM 算法参数选择还只能是凭借经验、实验对比、大范围的搜寻或者利用软件包提供的交互检验功能进行寻优的功能。

该软件包可以在.tw/~cjlin/免费获得。

——简介摘录自《LIBSVM使用方法.pdf》libsvm编译安装以Java版为例,下载libsvm-3.20.zip后,从java目录中得到全部源码,其他不以.java结尾的都是无关的文件。

新建Maven项目,或者直接clone我的Maven repository,项目结构如图:数据集获取数据集libsvm-3.20.zip中附带了一个heart_scale数据集,其主页上也提供了很多数据集,我整理了三个作为例子:数据集格式libsvm每行使用的格式如下:<label> <index1>:<value1> <index2>:<value2> …label为类别标号,index为特征序号,value为特征的值value为0时该项可以省略(大规模数据时节省存储空间)比如dataset/iris.scale.txt:1 1:-0.555556 2:0.5 3:-0.694915 4:-0.753 1:-0.166667 2:-0.333333 3:0.38983 4:0.9166672 1:-0.333333 2:-0.75 3:0.0169491 4:-4.03573e-081 1:-0.833333 3:-0.864407 4:-0.9166671 1:-0.611111 2:0.0833333 3:-0.864407 4:-0.9166673 1:0.611111 2:0.333333 3:0.728813 4:13 1:0.222222 3:0.38983 4:0.5833332 1:0.222222 2:-0.333333 3:0.220339 4:0.1666672 1:-0.222222 2:-0.333333 3:0.186441 4:-4.03573e-08…这是(UCI / Iris Plant, 4 features, 3 classes)提供的数据集,一共4个特征,3种类:1. sepal length in cm2. sepal width in cm3. petal length in cm4. petal width in cm5. class:— Iris Setosa— Iris Versicolour— Iris Virginica分别描述了3种鸢尾花。

libsvm参数说明

libsvm参数说明

libsvm参数说明【原创版】目录1.概述2.安装与配置3.参数说明4.应用实例5.总结正文1.概述LIBSVM 是一个开源的支持向量机(SVM)算法库,它可以在多种平台上运行,包括 Windows、Linux 和 Mac OS。

LIBSVM 提供了一系列用于解决分类和回归问题的工具和算法,它的核心是基于序列最小化算法的支持向量机。

2.安装与配置在使用 LIBSVM 之前,需要先安装它。

在 Windows 平台上,可以直接下载LIBSVM 的二进制文件,然后设置环境变量。

对于 Linux 和 Mac OS 平台,需要先安装相应的依赖库,然后编译并安装 LIBSVM。

在安装完成后,需要配置 LIBSVM 的参数,包括选择核函数、设置惩罚参数等。

这些参数对于支持向量机的性能至关重要,需要根据实际问题进行调整。

3.参数说明LIBSVM 的参数主要包括以下几个方面:- 核函数:LIBSVM 支持多种核函数,包括线性核、多项式核、径向基函数(RBF)核和 Sigmoid 核。

核函数的选择取决于问题的性质,需要根据实际问题进行选择。

- 惩罚参数:惩罚参数用于控制模型的复杂度,避免过拟合。

惩罚参数的取值范围是 0 到 1,取值越小,模型的复杂度越高,过拟合的风险也越高。

- 迭代次数:迭代次数用于控制算法的收敛速度,取值越大,收敛速度越快,但可能会影响模型的精度。

- 随机种子:随机种子用于生成随机数,影响模型的初始化和迭代过程。

在实际应用中,建议设置随机种子,以保证模型的可重复性。

4.应用实例LIBSVM 在实际应用中可以用于多种问题,包括分类、回归和排序等。

例如,在人脸检测、车牌识别和文本分类等问题中,可以使用 LIBSVM 来实现支持向量机算法。

5.总结LIBSVM 是一个功能强大的支持向量机库,它提供了多种核函数和参数设置,可以用于解决多种实际问题。

第1页共1页。

libsvm使用说明

libsvm使用说明

libSVM的使用文档11. 程序介绍和环境设置windows下的libsvm是在命令行运行的Console Program。

所以其运行都是在windows的命令行提示符窗口运行(运行,输入cmd)。

运行主要用到的程序,由如下内容组成:libsvm-2.9/windows/文件夹中的:svm-train.exesvm-predict.exesvm-scale.exelibsvm-2.9/windows/文件夹中的:checkdata.pysubset.pyeasy.pygrid.py另外有:svm-toy.exe,我暂时知道的是用于演示svm分类。

其中的load按钮的功能,是否能直接载入数据并进行分类还不清楚,尝试没有成功;python文件夹及其中的svmc.pyd,暂时不清楚功能。

因为程序运行要用到python脚本用来寻找参数,使用gnuplot来绘制图形。

所以,需要安装python和Gnuplot。

(Python v3.1 Final可从此下载:/detail/33/320958.shtml)(gnuplot可从其官网下载:)为了方便,将gnuplot的bin、libsvm-2.9/windows/加入到系统的path中,如下:gnuplot.JPGlibsvm.JPG这样,可以方便的从命令行的任何位置调用gnuplot和libsvm的可执行程序,如下调用svm-train.exe:pathtest.JPG出现svm-train程序中的帮助提示,说明path配置成功。

至此,libsvm运行的环境配置完成。

下面将通过实例讲解如何使用libsvm进行分类。

2. 使用libsvm进行分类预测我们所使用的数据为UCI的iris数据集,将其类别标识换为1、2、3。

然后,取3/5作为训练样本,2/5作为测试样本。

使用论坛中“将UCI数据转变为LIBSVM使用数据格式的程序”一文将其转换为libsvm所用格式,如下:训练文件tra_iris.txt1 1:5.4 2:3.4 3:1.7 4:0.21 1:5.1 2:3.7 3:1.5 4:0.41 1:4.6 2:3.6 3:1 4:0.21 1:5.1 2:3.3 3:1.7 4:0.51 1:4.8 2:3.4 3:1.9 4:0.2……2 1:5.9 2:3.2 3:4.8 4:1.82 1:6.1 2:2.8 3:4 4:1.32 1:6.3 2:2.5 3:4.9 4:1.52 1:6.1 2:2.8 3:4.7 4:1.22 1:6.4 2:2.9 3:4.3 4:1.3……3 1:6.9 2:3.2 3:5.7 4:2.33 1:5.6 2:2.8 3:4.9 4:23 1:7.7 2:2.8 3:6.7 4:23 1:6.3 2:2.7 3:4.9 4:1.83 1:6.7 2:3.3 3:5.7 4:2.13 1:7.2 2:3.2 3:6 4:1.8……测试文件tes_iris.txt1 1:5.1 2:3.5 3:1.4 4:0.21 1:4.9 2:3 3:1.4 4:0.21 1:4.7 2:3.2 3:1.3 4:0.21 1:4.6 2:3.1 3:1.5 4:0.21 1:5 2:3.6 3:1.4 4:0.21 1:5.4 2:3.9 3:1.7 4:0.4……2 1:7 2:3.2 3:4.7 4:1.42 1:6.4 2:3.2 3:4.5 4:1.52 1:6.9 2:3.1 3:4.9 4:1.52 1:5.5 2:2.3 3:4 4:1.32 1:6.5 2:2.8 3:4.6 4:1.5……3 1:6.3 2:3.3 3:6 4:2.53 1:5.8 2:2.7 3:5.1 4:1.93 1:7.1 2:3 3:5.9 4:2.13 1:6.3 2:2.9 3:5.6 4:1.83 1:6.5 2:3 3:5.8 4:2.2……libsvm的参数选择一直是令人头痛的问题。

Libsvm-26使用介绍

Libsvm-26使用介绍

Model file
svm_type c_svc kernel_type rbf gamma 0.0769231 nr_class 2:number of classes. For regression and one-class model, this number is 2. total_sv 132 rho 0.424632 label 1 -1 nr_sv 64 68: number of support vector for each class. SV
Experiments
Original sets with default parameters Accuracy=9.7561% Scaled sets with default parameters
Accuracy=87.8049% Scaled sets with parameter selection Accuracy=95.123%
~
xi − min( xi ) −1 xi = 2 max( xi ) − min( xi )
~
svmscale –l -1 –u 1 –s range train.1>train.1.scale svmscale –r range test.1>test.1.scale
Svmtrain
One-class:Here a hyperplane is placed such that it separates the dataset from the origin with maximal margin. The regularization parameter nu(0,1), is a user defined parameter indicating the fraction of the data that should be accepted by the description. nu-SVR: nu回归机。引入能够自动计算epsilon的参数nu。若记错误样本的个数 为q ,则nu大于等于q/l,即nu是错误样本的个数所占总样本数的份额的上界;若记 支持向量的个数为p,则nu小于等于p/l,即nu是支持向量的个数所占总样本数的份 额的下界。首先选择参数nu和C,然后求解最优化问题。 Shrinking: 优化求解过程中是否采用shrinking. 边界支持向量BSVs(ai=C的SV) 在迭代过程中ai不会变化,如果找到这些点,并把它们固定为C,可以减少QP的 规模。 Probability estimate: 是否训练SVC和SVR获得概率输出 -wi 不平衡样本的加权参数
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

int l;
// total #SV
svm_node **SV;
// SVs (SV[l])
double **sv_coef; // coefficients for SVs in decision functions (sv_coef[n-1][l])
double *rho;
// constants in decision functions (rho[n*(n-1)/2])
上海交通大学模式分析与机器智能实验室
LibSVM-2.6 程序代码注释
上海交通大学模式分析与机器智能实验室
我不经心地,服下你调好的毒 我知道今后我将万劫不复 但是你的红唇仍让我屈服 四月的樱花火红满天 我和你的梦,却要一以何处去缱绻? 虽然人间的情爱万万千千 世上已有太多崩毁的誓言 七个黑夜,七个白天 我为你写下的歌,彩绘的纸笺 却只能随着晚风 飘在大海的岸边 我仍愿服下你精心为我调好的毒 从你那深情的吻 吞下我与你在人间 最后的流光万千辗转朱颜……
// nSV[0] + nSV[1] + ... + nSV[n-1] = l
// XXX
int free_sv;
// 1 if svm_model is created by svm_load_model
// 0 if svm_model is created by svm_train
};
结构体svm_model用于保存训练后的训练模型,当然原来的训练参数也必须保留。
/* for C_SVC */
int *weight_label; /* for C_SVC */
double* weight;
/* for C_SVC */
double nu; /* for NU_SVC, ONE_CLASS, and NU_SVR */
double p; /* for EPSILON_SVR */
(类型转换不再说明)
struct svm_problem {
int l; double *y; struct svm_node **x; }; struct svm_problem存储本次参加运算的所有样本(数据集),及其所属类别。在某些数据挖掘 实现中,常用DataSet来实现。 int l;记录样本总数 double *y;指向样本所属类别的数组。在多类问题中,因为使用了one-agianst-one方法,可能原始 样本中y[i]的内容是1.0,2.0,3.0,…,但参与多类计算时,参加分类的两类所对应的y[i]内容是+1, 和-1。 Struct svm_node **x;指向一个存储内容为指针的数组; 如下图,最右边的四个长条格同上表,存储三维数据。(黑边框的是最主要的部分)
//用训练好的模型预报样本的值,输出结果保留到数组中。(并非接口函数) void svm_predict_values(const struct svm_model *model, const struct svm_node *x, double* dec_values);
//预报某一样本的值 double svm_predict(const struct svm_model *model, const struct svm_node *x);
4、 K (xi , x j ) = tanh(γxiT x j + r)
double degree;//就是2式中的d double gamma; //就是2,3,4式中的gamma double coef0;//就是2,4式中的r
double cache_size; /* in MB */ 制定训练所需要的内存,默认是40M,LibSVM2.5中是4M,所以自 己做开发选LibSVM2.5还是不错的! double eps;见参考文献[1]中式3.13 double C;//没什么好说的,惩罚因子,越大训练的模型越那个…,当然耗的时间越多
int shrinking;//指明训练过程是否使用压缩。 int probability;//新增,指明是否要做概率估计
struct svm_model
{
svm_parameter param; // parameter
int nr_class;
// number of classes, = 2 in regression/one class svm
上海交通大学模式分析与机器智能实验室
int nr_weight;//权重的数目,目前在实例代码中只有两个值,一个是默认0,另外一个是 svm_binary_svc_probability函数中使用数值2。 int *weight_label;//权重,元素个数由nr_weight决定. double nu;// 没什么好说的,too double p;// 没什么好说的,three
int shrinking; /* use the shrinking heuristics */
int probability; /* do probability estimates */
};
部分参数解释,(附核函数)
1、 K (xi , x j ) = xiT x j
2、 K (xi , x j ) = (γxiT x j + r)d ,γ > 0 3、 K (xi , x j ) = exp(−γ xi − x j 2 ),γ > 0
// LibSvm2.6新增函数 int svm_check_probability_model(const struct svm_model *model);
double *probA;
// pariwise probability information
double *probB;
// for classification only
int *label; // label of each class (label[n])
int *nSV; // number of SVs for each class (nSV[n])
//用SVM做交叉验证 void svm_cross_validation(const struct svm_problem *prob, const struct svm_parameter *param, int nr_fold, double *target);
//保存训练好的模型到文件 int svm_save_model(const char *model_file_name, const struct svm_model *model);
int *nSV; // number of SVs for each class (nSV[n])
int free_sv;//见svm_node **SV的注释
上海交通大学模式分析与机器智能实验室
//以下接口函数设计得非常合理,最后一节详细说明 //最主要的驱动函数,训练数据 struct svm_model *svm_train(const struct svm_problem *prob, const struct svm_parameter *param);
L=4
Y[0]
Y*
Y[1]
X**
Y[2]
Y[3]
上海交通大学模式分析与机器智能实验室
这样的数据结构有一个直接的好处,可以用x[i][j]来访问其中的某一元素(如果value为0.00 的也全部保留的话)
私下认为其中有一个败笔,就是把svm_node* x_space放到结构外面去了。
enum { C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR };/* svm_type */ enum { LINEAR, POLY, RBF, SIGMOID }; /* kernel_type */
1
2
3
4
-1
0.002
0.345
4.000
5.677

其中如果 value 为 0.00,该特征将不会被存储,其中(特征 3)被跳过:1245-1
0.002
0.345
4.000
5.677

0.00 不保留的好处在于,做点乘的时候,可以加快计算速度,对于稀疏矩阵,更能充分体现这种 数据结构的优势。但做归一化时,操作就比较麻烦了。
svm_parameter param; // 训练参数
int nr_class;// 类别数
int l; // 支持向量数
svm_node **SV; // 保存支持向量的指针,至于支持向量的内容,如果是从文件中读取,内容会
额外保留;如果是直接训练得来,则保留在原来的训练集中。如果训练完成后需要预报,原来的
训练集内存不可以释放。
double **sv_coef;//相当于判别函数中的alpha
double *rho; //相当于判别函数中的b
double *probA; // pariwise probability information
double *probB;//均为新增函数
int *label; // label of each class (label[n])
// LibSvm2.6新增函数 double svm_predict_probability(const struct svm_model *model, const struct svm_node *x, double* prob_estimates);
//消除训练的模型,释放资源 void svm_destroy_model(struct svm_model *model);
/* these are for training only */
double cache_size; /* in MB */
相关文档
最新文档