libsvm C++ 代码参数说明汇总

几个重要的数据结构 
2.1

struct svm_problem
{int l;      // 记录样本的总数double *y;  // 样本所属的标签(+1, -1)struct svm_node **x;    // 指向样本数据的二维数组(即一个矩阵,行数是样本数,列数是特征向量维度)
};

2.2

struct svm_node
{int index;double value;
};

svm_node是用来存储单个样本数据的,打个比方说,svm_problem是一群羊,那么svm_node就是这一群羊中的一只。需要注意的是,svm_node的存储空间应该比特征数大一位,最后一位index值必须以-1结束。比如:

    svm_node* node = new svm_node[1 + feature_size];for (int j = 0; j < feature_size; j++){node[j].index = j + 1;node[j].value = xdata[j];}node[feature_size].index = -1;return node;

2.3

    struct svm_parameter{int svm_type;// SVM的类型int kernel_type;// 核函数double degree;// 多项式参数double gamma;// 核函数为poly/rbf/sigmoid的参数double coef0;// 核函数为poly/sigmoid的参数//下面是训练所需的参数double cache_size;// 训练所需的内存MB为单位double eps;// 训练停止的标准(误差小于eps停止)double C;// 惩罚因子,越大训练时间越长int nr_weight;// 权重的数目,目前只有两个值,默认为0int *weight_label;// 权重,元素个数由nr_weight决定double* weight;// C_SVC权重double nu;double p;int shrinking;// 训练过程是否使用压缩int probability;// 是否做概率估计};

 libsvm命名空间下主要使用类:

svm_model 为模型类,通过训练或加载训练好的模型文件获得

svm_parameter 为参数类,主要为支持向量机设定参数,具体参数如下:


svm_parameter.kernel_type
核函数类型:核函数设置类型(svm_parameter.LINEAR)
svm_parameter.LINEAR – 线性:u'×v
svm_parameter.POLY– 多项式:(γ×u'×v + coef0)^degree
svm_parameter.RBF – RBF函数:exp(-γ×|u-v|^2)
svm_parameter.SIGMOID – sigmoid:tanh(γ×u'×v + coef0)

svm_parameter.degree
核函数中的degree设置(默认3)

svm_parameter.coef0
核函数中的coef0设置(默认0)

svm_parameter.shrinking
是否使用启发式,0或1(默认1)

svm_parameter.nu
设置ν-SVC,一类SVM和ν- SVR的参数(默认0.5)

svm_parameter.C
设置C-SVC,ε -SVR和ν-SVR的参数(默认1)

svm_parameter.cache_size
设置cache内存大小,以MB为单位(默认40)

svm_problem 相当于训练集合,可讲需要训练的数据加入该类传递给训练器

svm_node 内部使用的数据结构,主要用于保存待训练数据

svm 主调用程序中我们一般使用以下几个方法:

svm.svm_train(svm_problem,svm_parameter) 该方法返回一个训练好的svm_model
svm.svm_load_model(文件名); 该方法返回一个训练好的svm_model
svm.svm_save_model(文件名,svm_model); 该方法将svm_model保存到文件中
svm.svm_predict_values(svm_model,svm_node,double); 该方法返回doule类值,svm_node对svm_model测试,返回值确定了svm_node在模型中的定位

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

javascript设计模式-继承

javascript继承分为两种&#xff1a;类式继承&#xff08;原型链、extend函数&#xff09;、原型式继承&#xff08;对继承而来的成员的读和写的不对等性、clone函数&#xff09;。 类式继承-->prototype继承&#xff1a; 1 function Person(name){2 this.name …

GIS基础软件及操作(二)

原文 GIS基础软件及操作(二) 练习二、管理地理空间数据库 1.利用ArcCatalog 管理地理空间数据库 2.在ArcMap中编辑属性数据 第1步 启动 ArcCatalog 打开一个地理数据库 当 ArcCatalog打开后&#xff0c;点击, 按钮&#xff08;连接到文件夹&#xff09;. 建立到包含练习数据的…

libSVM分类小例C++

from&#xff1a;http://www.doczj.com/list_31/ 使用libSVM求解分类问题的C小例 1.libSVM简介 训练模型的结构体 struct svm_problem//储存参加计算的所有样本 { int l; //记录样本总数 double *y; //指向样本类别的组数 //prob.y new double[prob.l]; struct svm_node …

qunit 前端脚本测试用例

首先引用qunit 测试框架文件 <link rel"stylesheet" href"qunit-1.22.0.css"> <script src"qunit-1.22.0.js"></script> <div id"qunit"></div> <div id"qunit-fixture"></div>…

非常规文件名删除

生活中我们偶尔会遇到这样一件事&#xff1a;走在路上&#xff0c;突然感觉鞋底有东西&#xff0c;抬脚一看&#xff0c;是个泡泡糖。拿不掉&#xff0c;走路还一粘一粘的。要多难受有多难受&#xff01;同样在linux中也有这么一种文件名。看着不舒服&#xff0c;却删不掉。今天…

Machine Learning(Stanford)| 斯坦福大学机(吴恩达)器学习笔记【汇总】

from&#xff1a;https://blog.csdn.net/m399498400/article/details/52556168 定义本课程常用符号 训练数据&#xff1a;机器用来学习的数据 测试数据&#xff1a;用来考察机器学习效果的数据&#xff0c;相当于考试。 m 训练样本的数量&#xff08;训练集的个数) x 输入的…

PHP OOP

类跟对象的关系类是对象的抽象(对象的描述(属性)&#xff0c;对象的行为(方法))对象是类的实体面相对象的三大特征&#xff1a;封装、集成、多态自定义类Class Person{}属性定义属性是类里面的成员&#xff0c;所以要定义属性的前提条件是需要声明一个类Class Person{public $n…

kv存储对抗关系型数据库

http://www.searchdatabase.com.cn/showcontent_52657.htm转载于:https://www.cnblogs.com/hexie/p/5276034.html

模板匹配算法

from&#xff1a;https://blog.csdn.net/zhi_neng_zhi_fu/article/details/51029864 模板匹配(Template Matching)算法 模板匹配&#xff08;Template Matching&#xff09;是图像识别中最具代表性的方法之一。它从待识别图像中提取若干特征向量与模板对应的特征向量进行比较…

关于linux用户权限的理解

创建用户useradd 用户名创建用户组groupadd 组名查看用户Idid 用户修改文件权限chmod 777 文件名或目录-R 递归修改用户数组chown 属主&#xff1a;属组 文件名或目录名-R 递归转载于:https://blog.51cto.com/1979431/1833512

IMEI串号

IMEI串号就是国际移动设备身份码&#xff0c;是电子设备的唯一身份证&#xff0c;由于它的唯一性&#xff0c;它可以用来查询电子设备的保修期还有产地&#xff0c;可以说用处直逼人民的身份证啊&#xff01; 在拨号键盘页面 输入【*#06#】五个字符转载于:https://www.cnblogs…

立体匹配十大概念综述---立体匹配算法介绍

from&#xff1a;https://blog.csdn.net/wintergeng/article/details/51049596 一、概念 立体匹配算法主要是通过建立一个能量代价函数&#xff0c;通过此能量代价函数最小化来估计像素点视差值。立体匹配算法的实质就是一个最优化求解问题&#xff0c;通过建立合理的能量函数…

zjnu1730 PIRAMIDA(字符串,模拟)

Description Sample Input 6 JANJETINA 5 1 J 1 A 6 N 6 I 5 E Sample Output 1 0 2 1 1题意&#xff1a;给你一个长度小于等于10^6的字符串&#xff0c;然后每次让它循环铺盖&#xff0c;构成层数为n的塔&#xff0c;让你求得第i层塔中某个字符的个数。 思路&#xff1a;首先要…

ICP算法理解

from&#xff1a;https://blog.csdn.net/linear_luo/article/details/52576082 1 经典ICP ICP的目的很简单&#xff0c;就是求解两堆点云之间的变换关系。怎么做呢&#xff1f;思路很自然&#xff0c;既然不知道R和t(针对刚体运动)&#xff0c;那我们就假设为未知量呗&#xf…

2016-8-2更新日志

1.修正版本管理器资源文件名 不能正确拉取 91Resource 文件下的资源的问题2.修正商城购买物品不计算负重的问题3.修正拾取叠加物品 只计算一个物品的重量的问题4.游戏参数-> 游戏选项2->增加物品使用间隔5.修正冷酷不加技能点的BUG6.自定义UI开放测试[目前只能针对热血传…

字符流缓冲区的使用之BufferedWriter和BufferedReader

从字符输入流中读取文本&#xff0c;缓冲各个字符&#xff0c;从而实现字符、数组和行的高效读取&#xff0c;代码中使用了输入缓冲区的特有的方法&#xff1a;readLine(),获取一行文本数据 import java.io.BufferedReader; import java.io.FileNotFoundException; import java…

图像处理的灰度化和二值化

from&#xff1a;http://blog.sina.com.cn/s/blog_13c6397540102wqtt.html 在图像处理中&#xff0c;用RGB三个分量&#xff08;R&#xff1a;Red&#xff0c;G&#xff1a;Green&#xff0c;B&#xff1a;Blue&#xff09;&#xff0c;即红、绿、蓝三原色来表示真彩色&#x…

结合 category 工作原理分析 OC2.0 中的 runtime

绝大多数 iOS 开发者在学习 runtime 时都阅读过 runtime.h 文件中的这段代码: struct objc_class {Class isa OBJC_ISA_AVAILABILITY;#if !__OBJC2__Class super_class OBJC2_UNAVAILABLE;const char *name …

获取子元素

1、纯css 获取子元素 #test1>div {background-color:red;}#test1 div {font-size:14px;}#test1>div:first-child {color:#ccc;} <div id"test1"><div>性别</div><div>男</div></div> 因1示例中为#test1下的子元素 #test1…

JPG PNG GIF BMP图片格式的区别

类型优点缺点应用场景相同图片大小比较BMP无损压缩&#xff0c;图质最好文件太大&#xff0c;不利于网络传输 152KGIF动画存储格式最多256色&#xff0c;画质差 53KPNG可保存透明背景的图片画质中等 202KJPG文件小&#xff0c;利于网络传输画质损失车牌识别84K BMP BMP&…