- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LibSVM-28程序代码注释
LibSVM-2.8程序代码注释
刘国平(ahphone@)
2005-08-6
我不经心地,服下你调好的毒
我知道今后我将万劫不复
但是你的红唇仍让我屈服
四月的樱花火红满天
我和你的梦,却要一以何处去缱绻?
虽然人间的情爱万万千千
世上已有太多崩毁的誓言
七个黑夜,七个白天
我为你写下的歌,彩绘的纸笺
却只能随着晚风
飘在大海的岸边
我仍愿服下你精心为我调好的毒
从你那深情的吻
吞下我与你在人间
最后的流光万千辗转朱颜……
第一章 LibSVM结构
一、文件结构
整个LibSVM由两个文件组成,svm.h, svm.cpp。其中svm.h中定义了使用LibSVM所需要的数据结构和函数。
数据结构:
struct svm_node :数据节点,每个节点只是单个样本矢量中的一个特征。
struct svm_problem :数据集,存放所有样本矢量的数据结构。
struct svm_parameter : SVM参数。
其实应该还有一个数据结构存放在头文件中:
struct svm_model : 训练好的训练模型。
二、类结构图
其中有两组关键的类:
QMatrix类: 包括QMatrix, Kernel, SVC_Q, SVR_Q, ONE_CLASS_Q;
Solver类: 包括Solver, Solver_NU;
(矢量图,可以调整放大倍数)
第二章: 头文件SVM.h
本文件只是定义了若干个结构体,和若干接口函数。严格的来说,它们并不是接口函数,因为实际上整个代码里面,可以直接访问的函数还有其他。但事实上,如果仅仅是应用一下这份代码的话,只要知道这几个函数就可以了。2.1 struct svm_node
struct svm_node
{
int index;
double value;
};
struct svm_node用来存储单一向量中的单个特征,例如:
向量 x1={ 0.002, 0.345, 4, 5.677};
那么用struct svm_node来存储时就使用一个包含5个svm_node的数组来存储此4维向量,内存映象如下:
1 2 3 4 -1 0.002 0.345 4.000 5.677 空 其中如果value为0.00,该特征将不会被存储,其中(特征3)被跳过:
1 2 4 5 -1 0.002 0.345 4.000 5.677 空 0.00不保留的好处在于,做点乘的时候,可以加快计算速度,对于稀疏矩阵,更能充分体现这种数据结构的优势。但做归一化时,操作就比较麻烦了。(类型转换不再说明)
2.struct svm_problem
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,…,也就是属于类别1,2,3,但但参与多类计算时,参加分类的两类所对应的y[i]内容是+1,和-1。
Struct svm_node **x;指向一个存储内容为指针的数组;
如下图,最右边的四个长条格同上表,存储三维数据。(黑边框的是最主要的部分)
这样的数据结构有一个直接的好处,可以用x[i][j]来访问其中的某一元素(如果value为0.00的也全部保留的话。
私下认为其中有一个败笔,就是把svm_node* x_space放到结构外面去了。
2.enum { C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR }; /* svm_type */
enum { LINEAR, POLY, RBF, SIGMOID }; /* kernel_type */
支持向量机类型以及若干文献:
C-SVC :
C.J.C. Burges. A tutorial on support vector machines for pattern recognition. Data Mining and Knowledge Discovery, 2(2):955-974, 1998.
NU_SVC :2.4 struct svm_parameter
struct svm_parameter
{
int svm_type;//SVM类型,见前enum
int
您可能关注的文档
- GMP考试题确认与验证.doc
- gmapping.doc
- GMP试题选择和判断题.doc
- ERP系统接口规范.doc
- EFD模拟步骤.doc
- GMP洗瓶岗位试题库.doc
- GMR系统测验.doc
- GoldWave一节课入门速成.doc
- GMT与UTC的区别.doc
- GPS习题集名词解释.doc
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
文档评论(0)