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')