|
首先要提的是LibSVM是一個庫,Lib很明顯是library的縮寫,有些人不知道怎么會認(rèn)為它是一種算法。它是由中國臺灣的Chih-Chung Chang和Chih-Jen Lin等人開發(fā)的,他們用多種語言實現(xiàn)寫了LibSVM。 我把這一篇放到Weka開發(fā)里講,主要講它怎么和Weka結(jié)合,Weka中并不是沒有SVM算法,Weka中有SMO算法的實現(xiàn)。
Weka and LibSVM are two efficient software tools for building SVM classifiers. Each one of these two tools has its points of strength and weakness. Weka has a GUI and produces many useful statistics (e.g. confusion matrix, precision, recall, F-measure, and ROC scores). LibSVM runs much faster than Weka SMO and supports several SVM methods (e.g. One-class SVM, nu-SVM, and R-SVM). Weka LibSVM (WLSVM) combines the merits of the two tools. WLSVM can be viewed as an implementation of the LibSVM running under Weka environment.
這一段是我從拷貝來的,請注意里面有一句話,LibSVM運(yùn)行的比Weka里的SMO快的多,如果你敢用SMO算法去訓(xùn)練大數(shù)據(jù)集,你就明白天荒地老的真實含意了。其它和Weka結(jié)合的最主要的原因,我認(rèn)為是,我們開始的時候往往都是用別的算法去試著做實驗的(或者本來就需要多種基分類器),比如Na?ve Bayes(LibSVM是比SMO快的多,可是比起來Na?ve Bayes,它還是蝸牛),到最后又想試試LibSVM,這時就需要LibSVM庫。 還有一點(diǎn)也是容易誤解的就是Weka里的高版本,里面是有LibSVM這個分類器,但你如果直接想運(yùn)行是會出錯的,提示你沒有設(shè)置路徑。原因是:WLSVM can be viewed as an implementation of the LibSVM running under Weka environment. 先把LibSVM下載下來,上次竟然有人問我在哪下載,這種問題,我真是不想回答,不就是google一下嗎?網(wǎng)址也放上:http://www.csie./~cjlin/libsvm/,下載WLSVM,解壓后Lib文件夾下有一個LibSVM.jar的包,用和導(dǎo)入Weka.jar包相同的方式導(dǎo)入就好了,然后使用LibSVM和使用以前任何一種分類器的方式都是一樣的。
LibSVM classifier = new LibSVM(); classifier.buildClassifier( instances );
Evaluation evaluation = new Evaluation( ins ); evaluation.crossValidateModel(classifier, ins, 10, random );
System.out.println( "正確率為:" ( 1 - evaluation.errorRate() ) ); |
|
|