徐海蛟博士 Teaching.
怎麼用dos指令行使用svm-scale,svm-train,svm-predict三個程式,我們在前面博文中已經練習過了。這裡給出用JAVA調用LibSVM API最簡單的示例,用JAVA進行SVM分類隻需要2行程式就搞定了。
訓練集在官網有了,是UCI breast-cancer資料,乳腺癌資料,類數:2,總樣本:683,我們把前面644個樣本做訓練資料(breast-cancer_sc-train),後面39個樣本做測試資料(breast-cancer_sc-test),特征數:10。
(博文一般不允許粘貼外鍊,是以不粘帖網址)
訓練出來的模型放置在檔案breast-cancer.model中。最終測試結果放置在檔案breast-cancer.result中。
我們用的還是libsvm最新版:3.17。
建立一個java工程,導入libsvm.jar。
建立一個類,名字任意。
上述資料檔案,放置于工程基目錄下。否則運作時候報告路徑I/O錯誤!
編寫main()函數:
public static void main(String[] args) throws Exception {
// 訓練集檔案, 644個樣本
String trainArgs[] = { "breast-cancer_sc-train",
"breast-cancer.model" };
svm_train.main(trainArgs);// 訓練分類model(分類超平面)
// 測試, 39個測試樣本
String testArgs[] = { "breast-cancer_sc-test",
"breast-cancer.model", "breast-cancer.result" };
svm_predict.main(testArgs);// 測試
}// main()
結果如下: