私はいくつかの画像で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);
及びIはPredict_label_image = svmclassify(svmModel、image_feats)を使用しています。テスト用。
SVMをトレーニングする方法を示してください。おそらく、あなたはハイパーパラメータ上でグリッド検索を試みるべきですか? – J63
私は自分の質問を編集しましたが、あなたの質問に答えるかどうかはわかりません。私はsvmtrainとsvmclassifyを使いました。 – cinemaniac
入力機能のスケールを見ましたか? SVMは標準化から大きく利益を得ることができますhttp://content.iospress.com/articles/intelligent-data-analysis/ida730 –