天天看點

matlab中使用libsvm

訓練函數

model=svmtrain(train_label,train_data,options);

train_label: 訓練集标簽,大小為n*1,n表示樣本數,資料類型為double。

train_data: 訓練集屬性矩陣,大小為n*m,即n行m列。n為樣本數,m表示屬性數目。

model:輸出訓練得到的模型,是結構體。

預測函數

[predict_label,accuracy/mse,dec_value]=svmpredict(test_label,test,data,model);

test_label:測試集标簽。如果沒有測試集标簽,可以用任意n*1的矩陣,也就是列向量代替即可,此時的輸出accuracy/mse就沒有參考價值。

test_data:測試集屬性矩陣。

model: svmtrain階段得到的模型。

predict_label 預測的測試集标簽。

accuracy/mse 一個3*1的列向量,第一清單示分類準确率(分類問題使用),第二清單示mse(回歸問題使用),第三清單示平方相關系數(回歸問題使用)。

dec_value:決策值。

matlab版本:r2010b     libsvm版本:libsvm-3.20

不需要編譯libsvm。編譯是為了由cpp得到.mexw64,而libsvm-3.20直接提供了.mexw64.見下圖。

較新版本的matlab有自帶的svm實作,其函數名也為svmtrain,檔案位置在\toolbox\bioinfo\biolearning\svmtrain.m。為避免與libsvm混淆,可将matlab自帶的svmtrain.m改名後備份。

matlab中使用libsvm

繼續閱讀