LibSVM是臺(tái)灣 林智仁(Chih-Jen Lin) 教授2001年開發(fā)的一套支持向量機(jī)的庫,這套庫運(yùn)算速度還是挺快的,可以很方便的對(duì)數(shù)據(jù)做分類或回歸。由于libSVM程序小,運(yùn)用靈活,輸入?yún)?shù)少,并且是開源的,易于擴(kuò)展,因此成為目前國內(nèi)應(yīng)用最多的SVM的庫。
這套庫可以從http://www.csie.ntu.edu.tw/~cjlin/免費(fèi)獲得,目前已經(jīng)發(fā)展到2.89版。下載.zip格式的版本,解壓后可以看到,主要有5個(gè)文件夾和一些c++源碼文件。
Java —— 主要是應(yīng)用于java平臺(tái);
Python —— 是用來參數(shù)優(yōu)選的工具,稍后介紹;
svm-toy —— 一個(gè)可視化的工具,用來展示訓(xùn)練數(shù)據(jù)和分類界面,里面是源碼,其編譯后的程序在windows文件夾下;
tools —— 主要包含四個(gè)python文件,用來數(shù)據(jù)集抽樣(subset),參數(shù)優(yōu)選(grid),集成測(cè)試(easy), 數(shù)據(jù)檢查(checkdata);
windows —— 包含libSVM四個(gè)exe程序包,我們所用的庫就是他們,里面還有個(gè)heart_scale,是一 個(gè)樣本文件,可以用記事本打開,用來測(cè)試用的。
其他.h和.cpp文件都是程序的源碼,可以編譯出相應(yīng)的.exe文件。其中,最重要的是svm.h和svm.cpp文件,svm-predict.c、svm-scale.c和svm-train.c(還有一個(gè)svm-toy.c在svm-toy文件夾中)都是調(diào)用的這個(gè)文件中的接口函數(shù),編譯后就是windows下相應(yīng)的四個(gè)exe程序。另外,里面的 README 跟 FAQ 也是很好的文件,對(duì)于初學(xué)者如果E文過得去,可以看一下。
下面以svm-train為例,簡單的介紹下,怎么編譯:(這步很簡單,也沒必要,對(duì)于僅僅使用libsvm庫的人來說,windows下的4個(gè)exe包已經(jīng)足夠了,之所以加這步,是為了那些做深入研究的人,可以按照自己的思路改變一下svm.cpp,然后編譯驗(yàn)證)
我用的是VC 6.0,新建一個(gè)控制臺(tái)(win32 console application)程序,程序名叫svm-train(這個(gè)可以隨意),點(diǎn)擊OK后,選擇empty。
進(jìn)入程序框架后,里面什么都沒有,然后找到你的程序目錄,把svm-train.c、svm.h和svm.cpp拷貝過去(.c文件是c語言的,要是你習(xí)慣了c++,你盡可以改成.cpp),然后把這3個(gè)文件添加到工程,編譯。。。如果沒錯(cuò)誤,到debug下面看看,是不是有個(gè)svm-train.exe。其實(shí)windows下的svm-train.exe就是這樣編譯出來的。
哈哈,怎么樣是不是很簡單。但是,這樣的程序直接運(yùn)行沒意義,他要在dos下運(yùn)行,接收參數(shù)才行。下面開始我們的libsvm的體驗(yàn)之旅。
聯(lián)系客服