【发布时间】: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