簡體   English   中英

如何提高Matlab中SVM訓練和分類的准確性?

[英]How to increase accuracy in SVM training and classification in Matlab?

我正在接受幾個圖像的svm培訓。 這是我的第一個SVM項目。 我正在使用HOG特征提取來提取特征。 訓練功能並在地平線上標記其位置1,如果在背景上則標記0。 我有74張用於訓練的圖像和7張用於測試的圖像。 不幸的是,我不能超過50%的准確率。 我已經改變了圖像大小,我在特征提取中玩過單元格大小。 它沒有那么大的變化。 我該怎么辦? 什么是理想的數據集編號,培訓和測試的圖像數量是多少? 例如,在一個圖像中,它預測下一個圖像中的所有正確都是錯誤的。

這就是我計算准確性的方法;

%%%%% Evaluation
% Testing Data
hfsTest = vertcat(dataset.HorizonFeatsTest{:});
bfsTest = vertcat(dataset.BgFeatsTest{:});
test_data = [hfsTest;bfsTest];
% Labels
hlabelTest = ones(size(hfsTest,1),1);
blabelTest = zeros(size(bfsTest,1),1);
test_label = [hlabelTest;blabelTest];

Predict_label = vertcat(results.predicted_label{:});

acc = numel(find(Predict_label==test_label))/length(test_label);
disp(['Accuracy ', num2str(acc)]);
%done

% Training Data
hfs = vertcat(dataset.HorizonFeats{:});
bfs = vertcat(dataset.BgFeats{:});
train_data = [hfs;bfs];
% Labels
hlabel = ones(size(hfs,1),1);
blabel = zeros(size(bfs,1),1);
train_label = [hlabel;blabel];

%%%
% do training ...
svmModel = svmtrain(train_data, train_label,'BoxConstraint',2e-1);

我使用了Predict_label_image = svmclassify(svmModel,image_feats); 供測試用。

你需要做很多調整。 文檔中,您可以使用所有超參數。 我將從一個rbf內核開始,為BoxConstraint嘗試[0.01,0.1,1,10]。

如果你不嘗試不同的超參數配置,我擔心你不能指望svm工作。

暫無
暫無

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

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