天天看點

svm理論與實驗之17: libsvm最簡單Java示例(2行)

徐海蛟博士 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()

結果如下:

svm理論與實驗之17: libsvm最簡單Java示例(2行)