Matlab 为什么与trainImage​;相比,使用FitCecc()时的精确度要低得多;分类周期​;assifier()​;?

Matlab 为什么与trainImage​;相比,使用FitCecc()时的精确度要低得多;分类周期​;assifier()​;?,matlab,computer-vision,svm,face-recognition,Matlab,Computer Vision,Svm,Face Recognition,我尝试使用bag of words和FitCecc()(多类SVM)来重现与使用图像类别分类器获得的结果相似的结果 这将在验证集上返回约98%的准确率 然而,当我将视觉单词出现的直方图传递到多类SVM分类器时,它的准确率约为2.5% SVM_SURF = fitcecoc(trainFeatures,trainingSet.Labels); bag = bagOfFeatures(validationSet); featureMatrix = encode(bag, validationSet

我尝试使用bag of words和FitCecc()(多类SVM)来重现与使用图像类别分类器获得的结果相似的结果

这将在验证集上返回约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

有没有一个明显的原因可以解释为什么将一袋文字传递到FitCecc()而不是trainImageCategoryClassifier()时,准确率会低很多?

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

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