Java开发SVM之Eclipse集成LibSVM示例
生活随笔
收集整理的這篇文章主要介紹了
Java开发SVM之Eclipse集成LibSVM示例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
LIBSVM是臺灣大學林智仁(Lin Chih-Jen)教授等開發設計的一個簡單、易于使用和快速有效的SVM模式識別與回歸的軟件包。
1、官網下載LibSVM
? ?1)官網:http://www.csie.ntu.edu.tw/~cjlin/libsvm/
? ?2)下載:libsvm-3.21.zip
? ? ? 解壓后取其中的Java文件夾;
? ?3)下載測試數據集:https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/
2、Eclipse集成LibSVM
? ?1)在工程中引入libsvm.jar;
? ? ? 關聯libsvm源碼:右鍵工程進入properties頁面,選擇Java Build Path->Libraris
? ? ? 點開libsvm.jar=>Source attachment:(None)=>Edit,External location=>External Folder
? ? ? 選擇libsvm-3.21.zip解壓后的Java文件夾;
? ?2)libsvm-3.21.zip解壓后的Java文件夾下libsvm子文件夾外的svm_predict.java、svm_scale.java、svm_toy.java、svm_train.java復制到工程src下;
? ? ? 工程項目結構圖如下:
? ? ??
3、Java示例:
? ?1)數據格式要求:
? ? ? label1 index1:value1 index2:value2 ...
? ? ? label2 index1:value1 index2:value2 ...
? ? ? label就是標標記,index是特征,value是特征值。
? ? ? 從官網直接下載a1a訓練數據和測試數據;
? ? ? 訓練數據用寫字板打開如下圖:
? ? ?
? ?2)代碼如下:
public class SVMDemo {public static void main(String[] args) throws IOException {String[] arg = { "D:\\tmp\\traindata.txt", //訓練集"D:\\tmp\\model.txt" }; // 存放SVM訓練模型String[] parg = { "D:\\tmp\\testdata.txt", //測試數據"D:\\tmp\\model.txt", // 調用訓練模型"D:\\tmp\\predict.txt" }; //預測結果System.out.println("........SVM運行開始..........");long start=System.currentTimeMillis(); svm_train.main(arg); //訓練System.out.println("用時:"+(System.currentTimeMillis()-start)); //預測svm_predict.main(parg); } }
? ?3)執行結果:
? ? ?? ........SVM運行開始.......... * optimization finished, #iter = 537 nu = 0.4602701289755638 obj = -673.0314153588002, rho = 0.6283368113816543 nSV = 754, nBSV = 722 Total nSV = 754 用時:1426 Accuracy = 83.58638066933712% (25875/30956) (classification)
1、官網下載LibSVM
? ?1)官網:http://www.csie.ntu.edu.tw/~cjlin/libsvm/
? ?2)下載:libsvm-3.21.zip
? ? ? 解壓后取其中的Java文件夾;
? ?3)下載測試數據集:https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/
2、Eclipse集成LibSVM
? ?1)在工程中引入libsvm.jar;
? ? ? 關聯libsvm源碼:右鍵工程進入properties頁面,選擇Java Build Path->Libraris
? ? ? 點開libsvm.jar=>Source attachment:(None)=>Edit,External location=>External Folder
? ? ? 選擇libsvm-3.21.zip解壓后的Java文件夾;
? ?2)libsvm-3.21.zip解壓后的Java文件夾下libsvm子文件夾外的svm_predict.java、svm_scale.java、svm_toy.java、svm_train.java復制到工程src下;
? ? ? 工程項目結構圖如下:
? ? ??
3、Java示例:
? ?1)數據格式要求:
? ? ? label1 index1:value1 index2:value2 ...
? ? ? label2 index1:value1 index2:value2 ...
? ? ? label就是標標記,index是特征,value是特征值。
? ? ? 從官網直接下載a1a訓練數據和測試數據;
? ? ? 訓練數據用寫字板打開如下圖:
? ? ?
? ? ? 測試數據用寫字板打開如下圖:
? ??
? ? ??? ?2)代碼如下:
public class SVMDemo {public static void main(String[] args) throws IOException {String[] arg = { "D:\\tmp\\traindata.txt", //訓練集"D:\\tmp\\model.txt" }; // 存放SVM訓練模型String[] parg = { "D:\\tmp\\testdata.txt", //測試數據"D:\\tmp\\model.txt", // 調用訓練模型"D:\\tmp\\predict.txt" }; //預測結果System.out.println("........SVM運行開始..........");long start=System.currentTimeMillis(); svm_train.main(arg); //訓練System.out.println("用時:"+(System.currentTimeMillis()-start)); //預測svm_predict.main(parg); } }
? ?3)執行結果:
? ? ?? ........SVM運行開始.......... * optimization finished, #iter = 537 nu = 0.4602701289755638 obj = -673.0314153588002, rho = 0.6283368113816543 nSV = 754, nBSV = 722 Total nSV = 754 用時:1426 Accuracy = 83.58638066933712% (25875/30956) (classification)
? 模型輸出用寫字板打開如下圖:
? 預測結果用寫字板打開如下圖:
總結
以上是生活随笔為你收集整理的Java开发SVM之Eclipse集成LibSVM示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop多用户作业调度器和安全机制的
- 下一篇: Java应用梯度下降求解线性SVM模型参