2015-02-07 10 views
0

В настоящее время я делаю проект по мультимодальной биометрии (слияние на уровне оценки). Поэтому мне нужно получить оценку до слияния. Может ли кто-нибудь сказать мне, как получить оценку конкретного тестового образца, используя подготовленный классификатор SVM?Как найти оценку классификатора SVM в MATLAB?

Я использовал встроенные функции svmtrain и svmclassify в MATLAB.

+0

Что вы подразумеваете под «оценкой»? Вы посмотрели содержимое вывода структуры 'svmtrain'? Можете ли вы использовать их? – eigenchris

ответ

3

К сожалению, функция svmclassify выводит только ярлык класса и расстояние (оценка). Вам придется написать свою собственную функцию классификации. К счастью, это очень легко: Как вы есть Statistics Toolbox с svmclassify, вы можете легко посмотреть на исходный код функции с

edit svmclassify 

Вы увидите, что большая часть функции проверки входов и т.д. важные части масштабирования данных:

sample(:,c) = svmStruct.ScaleData.scaleFactor(c) * ... 
       (sample(:,c) + svmStruct.ScaleData.shift(c)); 

и делает классификацию, используя встроенную функцию svmdecision:

outclass = svmdecision(sample,svmStruct); 

Из определения svmdecision вы увидите, что он выводит расстояние f, но svmclassify игнорирует его. Таким образом, Вы можете легко создать новую функцию, которая выглядит почти точно как svmclassify, но и возвращает f:

1 function [outclass,f] = svmclassify(svmStruct,sample, varargin) 
... 
112 [outclass,f] = svmdecision(sample,svmStruct); 
... 
158 outclass = []; f = []; 

Вы увидите, что svmdecision является private function. Чтобы иметь возможность вызывать его из своей функции, вы должны сделать копию в своей локальной папке (или любой вложенной папке).

+0

Я написал функцию, как вы сказали, но ее ошибка: «Ошибка была обнаружена во время классификации. Неопределенная функция 'svmdecision' для входных аргументов типа 'struct'." –

+0

'svmdecision' является частной функцией. Я добавил это к ответу – hbaderts

+0

Можете ли вы рассказать мне, как использовать частную функцию в нашей собственной функции? –

Смежные вопросы