最近看LIBSVM,代码结构不是很明白,上网查到了很多关于代码结构注解的资料,在这里将 我认为比较好的一些资料进行汇总一下,当然,在文章最后有这些资料的链接地址。
libsvm中主要使用到的类(svm.cpp)
在做分类过程中,我们先看文件svm.cpp,该文件中包含了类的继承和组合(实线表示继承关系,虚线表示组合关系)
class Cache:本类主要负责运算所涉及的内存的管理,包括申请、释放等。
class Kernel:本类主要包括核函数的定义、克隆,矩阵Q()的计算等。这里关于矩阵Q的解释请看参考资料1。常见的核函数有:
class Solver:An SMO algorithm in Fan et al., JMLR 6(2005), p. 1889–1918,是二次规划问题,使用算法SMO。
class Solver_NU:该类继承Solver类,Solver for nu-svm classification and regression。
class SVC_Q:继承Kernel类,Q matrices for variou