数据挖掘平台文档 Confidential 上海交通大学图像处理与模式识别研究所 -1- LibSVM-2.8 程序代码注释 刘国平(*******************)2005-08-06 数据挖掘平台文档 Confidential 上海交通大学图像处理与模式识别研究所 -2- 我不经心地,服下你调好的毒 我知道今后我将万劫不复 但是你的红唇仍让我屈服 四月的樱花火红满天 我和你的梦,却要一以何处去缱绻? 虽然人间的情爱万万千千 世上已有太多崩毁的誓言 七个黑夜,七个白天 我为你写下的歌,彩绘的纸笺 却只能随着晚风 飘在大海的岸边 我仍愿服下你精心为我调好的毒 从你那深情的吻 吞下我与你在人间 最后的流光万千辗转朱颜… … 数据挖掘平台文档 Confidential 上海交通大学图像处理与模式识别研究所 -3- 第一章 LibSVM 结构 一、文件结构 整个LibSVM由两个文件组成,svm.h, svm.cpp。其中svm.h中定义了使用LibSVM所需要的数据结构和函数。 数据结构: struct svm_node :数据节点,每个节点只是单个样本矢量中的一个特征。 struct svm_problem :数据集,存放所有样本矢量的数据结构。 struct svm_parameter : SVM参数。 其实应该还有一个数据结构存放在头文件中: struct svm_model : 训练好的训练模型。 二、类结构图 其中有两组关键的类: 1、 QMatrix类: 包括QMatrix, Kernel, SVC_Q, SVR_Q, ONE_CLASS_Q; 2、 Solver类: 包括Solver, Solver_NU; cd Logical Model<
>svm_node+ index: int+ value: double<>svm_problem+ l: int+ y: double*+ <> x: svm_node**<>+ C_SVC: int+ NU_SVC: int+ ONE_CLASS: int+ EPSILON_SVR: int+ NU_SVR: int<>+ LINEAR: int+ POLY: int+ RBF: int+ SIGMOID: int<>svm_parameter+ svm_type: int+ kernel_type: int+ degree: double+ gamma: double+ coef0: double+ cache_size: double+ eps: double+ C: double+ nr_weight: int+ weight_label: int*+ weight: double*+ nu: double+ p: double+ shrinking: int+ probability: int<>Cache+ Cache(int, int)+ ~Cache()+ get_data(int, Qfloat**, int) : int+ swap_index(int, int) : void- lru_delete(head_t*) : void- lru_insert(head_t*) ...