1. 程式人生 > >SVM實現影象分類

SVM實現影象分類

SVM的原理不多贅述

在MATLAB中配置libsvm,網上有很多教程,注:64位的系統不需要編譯,配置好MATLAB的路徑就可以使用啦

介紹libsvm實現分類的兩個常用函式

svmtrain

——train svm 實現分類

——model=svm(train_label,train_matrix);

svmpredict

——用svm對測試集進行預測

——[predict_label]=svmpredict(test_label,testmatrix,model,'-q');%model指svmtrain訓練好的模型,-q代表輸出預測結果,-b不輸出預測結果。

測試一個簡單的小程式實現分類演算法

資料集data列向量(屬性值)分別為身高和體重,資料集標籤1代表男生,-1代表女生

用svm訓練好的模型儲存在model中

隨便寫個測試資料[190 85]對男女進行預測

data = [176 70;
180 80;
161 45;
163 47];
label = [1;1;-1;-1];
model = svmtrain(label,data);
testdata = [190 85];
testdatalabel = -1;

[predicted_label] = svmpredict(testdatalabel,testdata,model,'-q')

對libsvm自帶的資料集進行測試 找到heart_scale.mat檔案所在路徑

在此路徑下進行測試

load heart_scale.mat

train=heart_scale_inst;

train_label=heart_scale_label;

test=train;%讓訓練集和測試集相同

test_label=train_label;

model=svmtrain(train_label,train);

[predicted_label]=svmpredict(test_label,test,model,'-q')