libsvm和liblinear都是國立台灣大學的chih-jen lin博士開發的,libsvm主要是用來進行非線性svm 分類器的生成,提出有一段時間了,而liblinear則是去年才建立的,主要是應對large-scale的data classification,因為linear分類器的訓練比非線性分類器的訓練計算複雜度要低很多,時間也少很多,而且在large scale data上的效能和非線性的分類器效能相當,所以liblinear是針對大資料而生的。
這位網友對libsvm在matlab中的使用說明的很詳細,可以參考下。
有關liblinear和libsvm各自的優勢可以歸納如下:
1.libsvm用來就解決通用典型的分類問題
2.liblinear主要為大規模資料的線性模型設計
以下為一位網友採用liblinear進行資料分類的實驗效能說明「
」今天試用了以下liblinear,速度很快(快到我沒有想到),
我的實驗資料:
訓練集:21504 * 1500(1500是樣本的數量,21504是維度)
測試集:21504 * 2985
速度用秒來衡量,20次實驗總共不到2分鐘。
同樣的問題我用了libsvm實驗速度上相差太大,libsvm實驗5次,每次將近10分鐘,時間是其次,發現乙個問題就是,libsvm比liblinear的結果相差1個百分點,沒有讀liblinear的文章,不知道問題出在那個地方,libsvm我直接用的預設引數,線性模型。這樣必然引起乙個問題,如果我想評價線性模型和非線性模型的效能,我不可能乙個用liblinear乙個用libsvm,如果兩個都用libsvm,報告的效能肯定有一些問題。
所以如果你的問題維度很大(線性模型就有非常好的效能),不妨考慮liblinear. 「
對於什麼時候用線性模型的問題,我想上面的我舉的例子用linear classifier就比較好,非線性分類不一定比線性分類器好,尤其是在樣本及其有限,同時特徵維度很高的情況下,因為樣本有限的情況下,kernel map通常不準確,很有可能錯誤地劃分類別空間,可能造成比線性模型更差的結果。
說到scale,我建議不要用libsvm裡自帶的scale,因為一旦使用這個工具,它就會把原來稀疏的資料,變成非稀疏的格式,這樣不但會生成非常大的資料檔案,而且liblinear對稀疏資料快速處理的優勢就不能體現出來了。因此,要scale,就自己寫乙個,以保持原來稀疏的格式
liblinear的好處就是速度快,尤其是對稀疏的特徵。缺點就是太吃記憶體了。10g的資料量需要接近50g的記憶體,資料量再大就沒法做了 。
另外,還有乙個經常提到的svm庫svm-per:
是康奈爾大學的人設計的。好像對計算機硬體的效能要求比liblinear要低...有做影象處理的人使用這個svm-per代替liblinear。
另外,對於多分類問題以及核函式的選取,以下經驗規則可以借鑑:
對於多分類問題:
對於15類場景來說,每類100幅訓練影象,如果直接訓練乙個15類的multi-class classifier,則訓練檔案的label值取1~15,wi標記不用指定(default 1)。如果對於每個類單獨訓練乙個分類器,這樣就把這個類的100幅影象作為正樣本(假設label=1),而其餘所有的訓練影象作為負樣本(共1400幅,假設label=-1),由此可以看出正負樣本不平
liblinear的使用:鏈結1和鏈結2
Libsvm和Liblinear的使用經驗談
libsvm和liblinear都是國立台灣大學的chih jen lin博士開發的,libsvm主要是用來進行非線性svm 分類器的生成,提出有一段時間了,而liblinear則是去年才建立的,主要是應對large scale的data classification,因為linear分類器的訓練比...
Libsvm和Liblinear的使用經驗談《轉》
libsvm和liblinear都是國立台灣大學的chih jen lin博士開發的,libsvm主要是用來進行非線性svm 分類器的生成,提出有一段時間了,而liblinear則是去年才建立的,主要是應對large scale的data classification,因為linear分類器的訓練比...
Libsvm使用總結
libsvm使用心得 分類,回歸 libsvm是實現svm的便捷開源工具,應用廣泛 除此之外還有lightsvm,沒用過 由國立台灣大學chih chung chang和 chih jen lin編寫,可以實現基於svm的分類和回歸。由於個人對svm的理論只是 略懂 下面只介紹libsvm在win3...