libsvm-2.5程序代码导读.pdf

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
libsvm-2.5程序代码导读

上海交通大学模式分析与机器智能实验室 Libsvm-2.5 程序代码注释 上海交通大学模式分析与机器智能实验室 [1]Chih-Chung Chang and Chih-Jen Lin, LIBSVM : a library for support vector machines, 2001. Software available at .tw/~cjlin/libsvm [2]J. Platt. Fast training of support vector machines using sequential minimal optimization. In B. Scholkopf, C. Burges, and A. Smola, editors, Advances in kernel methods: support vector learning. MIT Press, 1998. [3] Sequential Minimal Optimization for SVM /people/xge/svm/smo.pdf [4]Chang, C.-C. and C.-J. Lin (2001). Training ν_-support vector classifiers: Theory and algorithms. Neural Computation 13 (9), 2119–2147. [5]Chang, C.-C. and C.-J. Lin (2002). Training ν_support vector regression: Theory and algorithms. Neural Computation 14 (8), 1959–1977. 上海交通大学模式分析与机器智能实验室 第一节: SVM.h 文件 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 不保留的好处在于,做点乘的时候,可以加快计算速度,对于稀疏矩阵,更能充分体现这种 数据结构的优势。但做归一化时,操作就比较麻烦了。 (类型转换不再说明) struct svm_problem { int l; double *y; struct svm_node **x; }; struct svm_problem存储本次参加运算的所有样本,及其所属类别。 int l;记录样本总数 double *y;指向样本所属类别的数组。在多类问题中,因为使用了one-agianst-one方法,可能原始 样本中y[i] 的内容是1,2 ,3,…,但参与多类计算时,参加分类的两类所对应的y[i] 内容是+1,和- 1。 Struct svm_node **x;指向一个存储内容为指针的数组; 如下图,最右边的四个长条格同上表,存储三维数据。 L=4 Y[0] Y* Y[1] X** Y[2] Y[3] 这样的数据结构有一个直接的好处,可以用x[i][j]来访问其中的某一元素(如果value为0.00 的也 上海交通大学模式分析与机器智能实验室 全部保留的话)

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档