我有幾個圖像的svm培訓。這是我第一個使用SVM的項目。我正在使用HOG特徵提取來提取特徵。培訓功能並標記其位置1如果位於地平線上,則爲0,如果位於背景上。我有74張訓練圖像和7張圖像供測試。不幸的是,我不能超過50%的準確度。我改變了圖像大小,我在特徵提取中玩過單元大小。它並沒有改變那麼多。我可以嘗試什麼?什麼是理想的數據集編號,有多少圖像用於培訓和測試?例如,在一幅圖像中,它預測下一幅圖像中的所有錯誤都是錯誤的。如何提高Matlab中SVM訓練和分類的準確性?
這就是我如何計算精度;
%%%%% 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);供測試用。
請顯示您如何訓練SVM。也許你應該嘗試對超參數進行網格搜索? – J63
我編輯了我的問題,但我不知道我是否回答你的問題。我已經使用svmtrain和svmclassify。 – cinemaniac
你有沒有看過輸入功能的規模? SVM可以從標準化中獲益顯着http://content.iospress.com/articles/intelligent-data-analysis/ida730 –