jlibsvm的概念與上篇使用windows command的相同,只要想辦法把那五大驟轉換成程式碼即可。那我們就按照這五大步驟介紹,以下只針對重要介紹,完整程式請參考LibSVM。
- 步驟一:資料收集
- 步驟二:資料前處理 (將格式轉換成符合訓練模型的格式)
目標將以下格式轉換成程式碼,0 1:-1 2:-1
1 1:-1 2:1
1 1:1 2:-1
0 1:1 2:1
用來記錄這個的類別為,
svm_problem {
int l; //訓練資料筆數,以此例子長度為4
double[] y; //輸出
svm_node[][] x; // 輸入
}
使用方式如下,l = 4
y -> 0 1 1 0
x -> [ ] -> (1,-1) (2,-1)
[ ] -> (1,-1) (2, 1)
[ ] -> (1, 1) (2,-1)
[ ] -> (1, 1) (2, 1)
- 步驟三:訓練模型
訓練模型並接模型儲存起來。
// 訓練模型
svm_model model = svm.svm_train(svmProb, svmParm);
// 儲存SVM參數
svm.svm_save_model(filepath, model); - 步驟四:測試模型
//載入SVM參數
svm_model model = svm.svm_load_model(filepath);
//輸入Input
svm_node[] x = svmProb.x[i];
//輸出Output
v = svm.svm_predict(model, x);
Reference
[1]碼上會!Java+libSVM分析動態資料(144行)
[2]LibSVM
沒有留言:
張貼留言