摘要:
crossvalind是cross-valindation的缩写,意即交叉检验。常用的形式有:① Indices=crossvalind('Kfold',N,K)② [Train,Test]=crossvalind('HoldOut',N,P)③ [Train,Test]=crossvalind('... 阅读全文
摘要:
1、设置图线宽度set( haxis, 'LineWidth', 1.0 );----这是 set函数, 'LineWidth'就是axis的线宽度属性,其值默认为0.5,这里可以改成1.0了。2、调整坐标轴上下限set( haxis, 'XLim', [ 2 20 ] );set( haxis, ... 阅读全文
摘要:
目前libsvm最新的version是3.17,主要的改变是在svm_group_classes函数中加了几行代码。官方的说明如下:Version 3.17 released on April Fools' day, 2013. We slightly adjust the way class la... 阅读全文
摘要:
在svm中,训练是一个十分重要的步骤,下面我们来看看svm的train部分。在libsvm中的svm_train中分别有回归和分类两部分,我只对其中分类做介绍。分类的步骤如下:统计类别总数,同时记录类别的标号,统计每个类的样本数目将属于相同类的样本分组,连续存放计算权重C训练n(n-1)/2 个模型... 阅读全文
摘要:
如果你看完了上篇博文的伪代码,那么我们就可以开始谈谈它的源代码了。下面先贴出它的类定义,一些成员函数的具体实现先忽略。[cpp]view plaincopy//AnSMOalgorithminFanetal.,JMLR6(2005),p.1889--1918//Solves://min0.5(\al... 阅读全文
摘要:
如果你看完了上篇博文的伪代码,那么我们就可以开始谈谈它的源代码了。下面先贴出它的类定义,一些成员函数的具体实现先忽略。[cpp]view plaincopy//AnSMOalgorithminFanetal.,JMLR6(2005),p.1889--1918//Solves://min0.5(\al... 阅读全文
摘要:
这一篇博文来分析下Kernel类,代码上很简单,一般都能看懂。Kernel类主要是为SVM的核函数服务的,里面实现了SVM常用的核函数,通过函数指针来使用这些核函数。其中几个常用核函数如下所示:(一般情况下,使用RBF核函数能取得很好的效果)关于基类QMatrix在Kernel中的作用并不明显,只是... 阅读全文
摘要:
下面来分析Cache类的源码,该类位于svm.cpp中。这个类的主要功能是:负责运算所涉及的内存管理,包括申请、释放等。简单来说:这个Cache类,首先通过Cache构造函数申请一块空间,这块空间的大小是:L个head_t大小的空间。然后get_data函数保证结构head_t中至少有len个flo... 阅读全文
摘要:
svm.cpp浅谈svm.cpp总共有3159行代码,实现了svm算法的核心功能,里面总共有Cache、Kernel、ONE_CLASS_Q、QMatrix、Solver、Solver_NU、SVC_Q、SVR_Q 8个类(如下图1所示),而它们之间的继承和组合关系如图2、图3所示。在这些类中Cac... 阅读全文
摘要:
libsvm是国立台湾大学Chih-Jen Lin开发的一个SVM的函数库,是当前应用最广泛的svm函数库,从2000年到2010年,该函数库的下载量达到250000之多。它的最新版本是version 3.17,主要是对是svm_group_classes做了修改。主页:LIBSVM -- A Li... 阅读全文