支持向量機(SVM)的一個簡單應用實例及matlab代碼


數據集下載地址 :http://pan.baidu.com/s/1geb8CQf

一、實驗目的

1.掌握支持向量機(SVM)的原理、核函數類型選擇以及核參數選擇原則等;

2.熟悉基於libSVM二分類的一般流程與方法;

二、實驗內容

    1.對“bedroom, forest”兩組數據進行分類(二分類);

    2.得到試驗分類准確率;

三、實驗條件

1.LibSVM軟件包,3.17版本;

2. Matlab 2013a。

四、實驗方法與流程

(1) 試驗流程:

Step1: 根據給定的數據,選定訓練集和測試集;

Step2: 為訓練集與測試集選定標簽集;

Step3: 利用訓練集進行訓練分類器得到model;

Step4: 根據model,對測試集進行測試集得到accuracy rate;

(2)實驗數據准備:

“bedroom.mat”10*15的矩陣,分別代表了不同的十張有關於bedroom的圖片的15維屬性;

“forest.mat”10*15矩陣,分別代表了不同的十張有關於forest的圖片的15維屬性特征;

訓練集:trainset(); 分別取bedroom(1:5,:)和forse(1:5,:)作為訓練集;

測試集:testset();  分別取bedroom(6:10,:)和forse(6:10,:)作為測試集;

標簽集:label(); 取bedroom的數據為正類標簽為1;forse的數據為負類標簽為-1.

(3) Matlab程序與實驗結果:

 

附錄:matlab代碼

clear all;
clc;
%%
%% dataset是將bedroom和forest合並;dataset = [bedroom;forset];這行代碼可以實現合並
load dataset.mat                 %導入要分類的數據集
load labelset.mat                %導入分類集標簽集
 
% 選定訓練集和測試集
 
% 將第一類的1-5,第二類的11-15做為訓練集
train_set = [dataset(1:5,:);dataset(11:15,:)];
% 相應的訓練集的標簽也要分離出來
train_set_labels = [lableset(1:5);lableset(11:15)];
% 將第一類的6-10,第二類的16-20,做為測試集
test_set = [dataset(6:10,:);dataset(16:20,:)];
% 相應的測試集的標簽也要分離出來
test_set_labels = [lableset(6:10);lableset(16:20)];
 
% 數據預處理,將訓練集和測試集歸一化到[0,1]區間
 
[mtrain,ntrain] = size(train_set);
[mtest,ntest] = size(test_set);
 
test_dataset = [train_set;test_set];
% mapminmax為MATLAB自帶的歸一化函數
[dataset_scale,ps] = mapminmax(test_dataset',0,1);
dataset_scale = dataset_scale';
 
train_set = dataset_scale(1:mtrain,:);
test_set = dataset_scale( (mtrain+1):(mtrain+mtest),: );
 
%% SVM網絡訓練
model = svmtrain(train_set_labels, train_set, '-s 2 -c 1 -g 0.07');
 
%% SVM網絡預測
[predict_label] = svmpredict(test_set_labels, test_set, model);
 
%% 結果分析
 
% 測試集的實際分類和預測分類圖
% 通過圖可以看出只有一個測試樣本是被錯分的
figure;
hold on;
plot(test_set_labels,'o');
plot(predict_label,'r*');
xlabel('測試集樣本','FontSize',12);
ylabel('類別標簽','FontSize',12);
legend('實際測試集分類','預測測試集分類');
title('測試集的實際分類和預測分類圖','FontSize',12);
grid on;

轉載自https://blog.csdn.net/mushiheng/article/details/52491104


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM