【问题标题】:Finding Accuracy in SVM (Matlab)在 SVM (Matlab) 中寻找准确度
【发布时间】:2017-11-30 10:23:04
【问题描述】:

我对海洋图像进行了 SVM 训练和分类。我通过 HoG 提取特征并训练了特征。在将特征标记为 1 和 0 后,我测试了我的图像。结果,我总是有 50%。我想也许我的图像不好,所以我单独测试了每张图像并去掉了不好的图像。当我测试一张图像时,准确率是 100%。然后,当我将另一个图像添加到测试图像文件夹(也有 100% 的准确率)时,我得到了大约 54% 的结果。总的来说,我在两个测试图像中有两个错误标记的特征。我不明白为什么我的准确率很低。这是我用来计算的公式;

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

谢谢。

【问题讨论】:

  • 提供更多代码。 Predict_labeltest_label 的尺寸是多少。例如。 size(Predict_label) 的结果是什么?您显示的代码部分看起来是正确的。我也不明白如果你只有 2 张图片,你怎么能得到 54%。它是 0、50 或 100..
  • 可能有很多原因。这可能是 HOG 功能的问题 - 可能是窗口太小,角度箱的精度不够,可能归一化不正确等。这可能是您选择的内核。它也可能是您选择的图像。这里不足以告诉你你的分类发生了什么。你需要告诉我们更多关于你是如何训练你的 SVM 的。请分享一些代码或其他内容,让我们了解您在训练模型时实际所做的工作。顺便说一句,做numel + find 非常糟糕。只需使用nnz。有些图片也不错。
  • 我正在从有效点中提取 HoG 特征。我错误地解释了我正在训练的内容。我正在围绕有效点训练特征。所以我在水平线上有 50 个随机位置,在背景上有 50 个随机位置。每个图像都有地面实况数据。两者的尺寸均为 198x1。我尝试过不同的内核,正如我所说的,当我单独检查图像时,准确度是 100%。当我添加第二张图片时,问题就开始了。什么是nnz?我应该在代码中添加哪一部分(培训、测试)?
  • 你的解释真的很混乱。一些解释你在做什么的图片会有所帮助。此外,编辑您的问题并添加更多代码。 nnz 只是替换 numel(find(..
  • 我添加了一些代码,这些是示例结果; imgur.com/a/QbF7j 在结果图像中绿色表示正确,红色表示错误。

标签: matlab image-processing machine-learning classification svm


【解决方案1】:

感谢您的回答,我已经解决了我的问题。这是由于重复测试。我刚刚删除了代码中的第二次测试。

【讨论】:

    猜你喜欢
    • 2012-04-13
    • 2020-02-13
    • 1970-01-01
    • 2014-08-05
    • 2019-07-24
    • 2017-11-16
    • 2021-09-28
    • 1970-01-01
    • 2021-09-16
    相关资源
    最近更新 更多