【问题标题】:Why is accuracy so much lower when using fitcecoc() compared to trainImage​CategoryCl​assifier()​?为什么与 trainImage​CategoryCl​assifier()​相比,使用 fitcecoc() 时的准确度要低得多?
【发布时间】:2018-08-29 14:45:28
【问题描述】:

我正在尝试使用词袋和 fitcecoc()(多类 SVM)来重现与使用图像类别分类器获得的结果相似的结果 as seen in the documentation.

% Code from documentation
bag = bagOfFeatures(trainingSet); % create bag of features from trainingSet (an image datastore)
categoryClassifier = trainImageCategoryClassifier(trainingSet, bag);
confMatrix = evaluate(categoryClassifier, validationSet);

这会在验证集上返回约 98% 的准确度。

但是,当我将视觉单词出现的直方图传递给多类 SVM 分类器时,它的准确率约为 2.5%。

SVM_SURF = fitcecoc(trainFeatures,trainingSet.Labels);
bag = bagOfFeatures(validationSet);
featureMatrix = encode(bag, validationSet); % histogram of visual word occurrences
[pred score cost] = predict(SVM_SURF, featureMatrix)
accuracy = sum(validationSet.Labels == pred)/size(validationSet.Labels,1);
accuracy

当词袋传递给 fitcecoc() 而不是 trainImageCategoryClassifier() 时,为什么准确率会低很多?

【问题讨论】:

    标签: matlab computer-vision svm face-recognition


    【解决方案1】:

    fitcecoc 分类器是一个多用途(图像、财务数据、...`)分类器。通过配置内核,您可以获得更好的准确率。但是,传统上,如果您增加训练数据,fitcecoc 函数会提供更好的结果。

    【讨论】:

      猜你喜欢
      • 2017-12-22
      • 2020-10-10
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      • 2020-06-24
      • 1970-01-01
      • 1970-01-01
      • 2021-04-13
      相关资源
      最近更新 更多