LibSVM是臺灣 林智仁(Chih-Jen Lin) 教授2001年開發的一套支持向量機的庫,這套庫運算速度仍是挺快的,能夠很方便的對數據作分類或迴歸。因爲libSVM程序小,運用靈活,輸入參數少,而且是開源的,易於擴展,所以成爲目前國內應用最多的SVM的庫。java
這套庫能夠從http://www.csie.ntu.edu.tw/~cjlin/免費得到,目前已經發展到2.89版。下載.zip格式的版本,解壓後能夠看到,主要有5個文件夾和一些c++源碼文件。python
Java —— 主要是應用於java平臺;c++
Python —— 是用來參數優選的工具,稍後介紹;web
svm-toy —— 一個可視化的工具,用來展現訓練數據和分類界面,裏面是源碼,其編譯後的程序在windows文件夾下;windows
tools —— 主要包含四個python文件,用來數據集抽樣(subset),參數優選(grid),集成測試(easy), 數據檢查(checkdata);app
windows —— 包含libSVM四個exe程序包,咱們所用的庫就是他們,裏面還有個heart_scale,是一 個樣本文件,能夠用記事本打開,用來測試用的。框架
其餘.h和.cpp文件都是程序的源碼,能夠編譯出相應的.exe文件。其中,最重要的是svm.h和svm.cpp文件,svm-predict.c、svm-scale.c和svm-train.c(還有一個svm-toy.c在svm-toy文件夾中)都是調用的這個文件中的接口函數,編譯後就是windows下相應的四個exe程序。另外,裏面的 README 跟 FAQ 也是很好的文件,對於初學者若是E文過得去,能夠看一下。函數
下面以svm-train爲例,簡單的介紹下,怎麼編譯:(這步很簡單,也不必,對於僅僅使用libsvm庫的人來講,windows下的4個exe包已經足夠了,之因此加這步,是爲了那些作深刻研究的人,能夠按照本身的思路改變一下svm.cpp,而後編譯驗證)工具
我用的是VC 6.0,新建一個控制檯(win32 console application)程序,程序名叫svm-train(這個能夠隨意),點擊OK後,選擇empty。測試
進入程序框架後,裏面什麼都沒有,而後找到你的程序目錄,把svm-train.c、svm.h和svm.cpp拷貝過去(.c文件是c語言的,要是你習慣了c++,你盡能夠改爲.cpp),而後把這3個文件添加到工程,編譯。。。若是沒錯誤,到debug下面看看,是否是有個svm-train.exe。其實windows下的svm-train.exe就是這樣編譯出來的。
哈哈,怎麼樣是否是很簡單。可是,這樣的程序直接運行沒意義,他要在dos下運行,接收參數才行。下面開始咱們的libsvm的體驗之旅。