- 博客(10)
- 资源 (35)
- 收藏
- 关注
原创 libsvm代码阅读:关于svm_group_classes函数分析
upadate :2014-2-28 LinJM @HQU 『 libsvm专栏地址:http://blog.csdn.net/column/details/libsvm.html 』目前最新的version是3.17,主要的改变是在svm_group_classes函数中加了几行代码。官方的说明如下:svm_group_classes函数的功能是:group training data of the same classImportant:如何将一堆数据归类到一起,同类的连续存储!可参考这个函数。
2014-02-28 13:39:08 3674
原创 libsvm代码阅读:关于svm_train函数分析
在svm中,训练是一个十分重要的步骤,下面我们来看看svm的train部分。在libsvm中的svm_train中分别有回归和分类两部分,我只对其中分类做介绍。分类的步骤如下:统计类别总数,同时记录类别的标号,统计每个类的样本数目将属于相同类的样本分组,连续存放计算权重C训练n(n-1)/2 个模型初始化nozero数组,便于统计SV//初始化概率数组训练过程中,需要重
2014-02-24 22:19:30 9856
原创 关于operator=的自我赋值问题
今天看了一段C++Primer的代码:p506//use-counted assignment operator;use is a pointer to a shared use countSales_item&Saler_item::operator=(const Sales_item &rhs){ ++*rhs.use; decr_use(); p = rhs.p; use
2014-02-23 20:54:26 1791
原创 libsvm代码阅读:关于Solver类分析(二)
如果你看完了上篇博文的伪代码,那么我们就可以开始谈谈它的源代码了。// An SMO algorithm in Fan et al., JMLR 6(2005), p. 1889--1918// Solves://// min 0.5(\alpha^T Q \alpha) + p^T \alpha//// y^T \alpha = \delta// y_i = +1 or -1
2014-02-22 22:15:04 4642 1
原创 libsvm代码阅读:关于Solver类分析(一)
现在我们涉及到的Solver类是一个SVM优化求解的实现技术:SMO,即序贯最小优化算法。libsvm中最原始的Solver的代码有六百多行,再加上各种变形就上千行了,为了下面好理解,我们先来看看理论问题。代码的开头如下:// An SMO algorithm in Fan et al., JMLR 6(2005), p. 1889--1918// Solves://// min 0
2014-02-22 21:07:00 4973
原创 libsvm代码阅读:关于Kernel类分析
这一篇博文来分析下Kernel类,代码上很简单,一般都能看懂。Kernel类主要是为SVM的核函数服务的,里面实现了SVM常用的核函数,通过函数指针来使用这些核函数。其中几个常用核函数如下所示:(一般情况下,使用RBF核函数能取得很好的效果)全部代码如下://// Kernel evaluation//// the static method k_function is for doing single kernel evaluation// the constructor of Kernel
2014-02-21 12:16:21 3609 2
原创 libsvm代码阅读:关于Cache类的分析
下面来分析Cache类的源码,该类位于svm.cpp中。这个类的主要功能是:负责运算所涉及的内存管理,包括申请、释放等。简单来说:这个Cache类,首先通过Cache构造函数申请一块空间,这块空间的大小是:L个head_t大小的空间。然后get_data函数保证结构head_t中至少有len个float的内存,并且将可以使用的内存块的指针放在data指针中;而swap_index函数则是用于交换head[i]和head[j]。Cache类的定义如下:class Cache{public: Cac
2014-02-20 21:01:28 3141
原创 libsvm代码阅读:svm.cpp浅谈和函数指针
svm.cpp总共有3159行代码,实现了svm算法的核心功能,里面总共有Cache、Kernel、ONE_CLASS_Q、QMatrix、Solver、Solver_NU、SVC_Q、SVR_Q 8个类(如下图1所示),而它们之间的继承和组合关系如图2、图3所示。在这些类中Cache、Kernel、Solver是核心类,对整个算法起支撑作用。在以后的博文中我们将对这3个核心类做重点注解分析,另外还将对svm.cpp中的svm_train函数做一个注解分析。函数指针是指向函数而非指向对象的指针。像其他指针
2014-02-20 10:43:32 4761 1
原创 libsvm代码阅读:基础准备与svm.h头文件
Update:2014-2-25 LinJM @HQU libsvm是国立台湾大学Chih-Jen Lin开发的一个SVM的函数库,是当前应用最广泛的svm函数库,从2000年到2010年,该函数库的下载量达到250000之多。它的最新版本是version 3.17,主要是对是svm_group_classes做了修改。libsvm函数包的组织结构如下:1、主文件路径:包含了核心的C/C++程序和例子数据。其中svm.cpp是svm的核心程序,它实现了svm的训练和测试算法。2、tool子文件路径
2014-02-19 19:07:23 6218
原创 指针参数传递内存问题
如果函数的参数是一个指针,不要指望用该指针去申请动态内存。一个失败的例子如下所示:void GetMemory(char *p, int num){ p = (char *)malloc(sizeof(char)*num);}void Test(void){ char *str = NULL; GetMemory(str,100);//str 仍然为NULL strcpy
2014-02-10 17:06:01 1337
A Tutorial on Support Vector Regression
2014-01-16
最小二乘法及数据拟合建模的回归分析
2013-12-09
Fractal Fern
2013-12-01
Michael Elad 关于稀疏表示的PPT
2013-09-04
OpenCV之_HaarTraining算法剖析
2013-08-19
HOG解析与代码
2013-05-14
pixeldup.m
2013-03-31
基于ARM9和嵌入式Linux的门禁系统软件设计
2013-03-30
ATM的漏洞及代码分析
2012-03-16
LMS与RLS自适应滤波算法性能比较
2012-03-16
简明 Vim 练级攻略
2012-03-16
基于DSP的静脉识别系统
2010-11-07
基于Bandelet变换的手背静脉识别算法
2010-11-07
基于2DFLD的手背静脉识别算法
2010-11-07
改进的手背静脉识别算法
2010-11-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人