gpt4 book ai didi

matlab - 如何提高Matlab中SVM训练和分类的准确性?

转载 作者:行者123 更新时间:2023-11-30 09:19:42 25 4
gpt4 key购买 nike

我正在使用多个图像进行 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);供测试用。

最佳答案

您需要进行大量调整。在这里documentation你拥有所有可以使用的超参数。我将从 rbf 内核开始,并尝试 [0.01, 0.1, 1, 10] 作为 BoxConstraint。

如果您不尝试不同的超参数配置,恐怕您无法指望 svm 能够工作。

关于matlab - 如何提高Matlab中SVM训练和分类的准确性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44540666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com