К сожалению, функция 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. Чтобы иметь возможность вызывать его из своей функции, вы должны сделать копию в своей локальной папке (или любой вложенной папке).
Что вы подразумеваете под «оценкой»? Вы посмотрели содержимое вывода структуры 'svmtrain'? Можете ли вы использовать их? – eigenchris