与trainImage CategoryCl assifier()相比,使用fitcecoc()时为什么精度要低得多?

时间:2018-03-20 16:59:59

标签: matlab computer-vision svm face-recognition

我正在尝试使用一些单词和fitcecoc()(多类SVM)来重现与使用Image Category分类器获得的结果类似的结果 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()时,是否有明显的理由说明为什么准确度会低得多?

1 个答案:

答案 0 :(得分:1)

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