簡體   English   中英

Matlab 中數字圖像集的 SVM 分類

[英]SVM Classifications on set of images of digits in Matlab

我必須在數字數據集上使用 SVM 分類器。 該數據集由數字 28x28 的圖像和總共 2000 張圖像組成。 我嘗試使用 svmtrain 但 matlab 給出了一個錯誤,即 svmtrain 已被刪除。 所以現在我正在使用 fitcsvm。

我的代碼如下:

labelData = zeros(2000,1);

for i=1:1000
labelData(i,1)=1;
end

for j=1001:2000
labelData(j,1)=1;
end

SVMStruct =fitcsvm(trainingData,labelData) 
%where training data is the set of images of digits.

我需要知道如何使用 svm 預測測試數據的輸出? 此外,我的代碼正確嗎?

您正在尋找的功能是predict 它將 SVM 對象作為輸入,后跟數據矩陣並返回預測標簽。 確保你不是在所有數據上訓練你的模型,而是在一個合理的子集上(通常是 70%)。 您可以使用交叉驗證准備:

% create cross-validation object
cvp = cvpartition(Lbl,'HoldOut',0.3);
% extract logical vectors for training and testing data
lgTrn = cvp.training;
lgTst = cvp.test;

% train SVM
mdl = fitcsvm(Dat(lgTrn,:),Lbl(lgTrn));

% test / predict SVM
Lbl_prd = predict(mdl,Dat(lgTst,:));

請注意,您的標簽會生成單個向量。

為什么Mathworks公司改變了理由svmtrainfitcsvm是簡潔。 現在很清楚是“分類”(fit c svm)還是“回歸”(fit r svm)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM