LibSVM学习(一)——初识LibSVM

      LibSVM是台湾 林智仁(Chih-Jen Lin) 教授2001年开发的一套支持向量机的库,这套库运算速度还是挺快的,可以很方便的对数据做分类或回归。由于libSVM程序小,运用灵活,输入参数少,并且是开源的,易于扩展,因此成为目前国内应用最多的SVM的库。

    

       这套库可以从http://www.csie.ntu.edu.tw/~cjlin/免费获得,目前已经发展到2.89版。下载.zip格式的版本,解压后可以看到,主要有5个文件夹和一些c++源码文件。

   

       Java       —— 主要是应用于java平台;

       Python   —— 是用来参数优选的工具,稍后介绍;

       svm-toy —— 一个可视化的工具,用来展示训练数据和分类界面,里面是源码,其编译后的程序在windows文件夹下;

       tools       —— 主要包含四个python文件,用来数据集抽样(subset),参数优选(grid),集成测试(easy), 数据检查(checkdata)

       windows —— 包含libSVM四个exe程序包,我们所用的库就是他们,里面还有个heart_scale,是一 个样本文件,可以用记事本打开,用来测试用的。

       其他.h.cpp文件都是程序的源码,可以编译出相应的.exe文件。其中,最重要的是svm.hsvm.cpp文件,svm-predict.csvm-scale.csvm-train.c(还有一个svm-toy.csvm-toy文件夹中)都是调用的这个文件中的接口函数,编译后就是windows下相应的四个exe程序。另外,里面的 README FAQ 也是很好的文件,对于初学者如果E文过得去,可以看一下。

       下面以svm-train为例,简单的介绍下,怎么编译:(这步很简单,也没必要,对于仅仅使用libsvm库的人来说,windows下的4exe包已经足够了,之所以加这步,是为了那些做深入研究的人,可以按照自己的思路改变一下svm.cpp,然后编译验证

 

       我用的是VC 6.0,新建一个控制台(win32 console application)程序,程序名叫svm-train(这个可以随意),点击OK后,选择empty

       进入程序框架后,里面什么都没有,然后找到你的程序目录,把svm-train.csvm.hsvm.cpp拷贝过去(.c文件是c语言的,要是你习惯了c++,你尽可以改成.cpp),然后把这3个文件添加到工程,编译。。。如果没错误,到debug下面看看,是不是有个svm-train.exe。其实windows下的svm-train.exe就是这样编译出来的。

       哈哈,怎么样是不是很简单。但是,这样的程序直接运行没意义,他要在dos下运行,接收参数才行。下面开始我们的libsvm的体验之旅。

 

   

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页