Неверная классификация ошибок и точности - PullRequest
2 голосов
/ 01 апреля 2012

scatter plot Ниже приведен код Matlab для классификатора Байеса, который классифицирует произвольные числа по своим классам.

 training = [3;5;17;19;24;27;31;38;45;48;52;56;66;69;73;78;84;88]; 
     target_class = [0;0;10;10;20;20;30;30;40;40;50;50;60;60;70;70;80;80];  

      test = [1:2:90]'; 
     class  = classify(test,training, target_class, 'diaglinear');  % Naive Bayes classifier 
 [test class]

(a) Если кто-то может предоставить фрагменты кода для вычисления байесовской ошибки для неправильной классификации и точности. Я просмотрел документацию Matlab относительно [class,err]=classify(...). Но я не могу следить за этим и работать.

(b) Кроме того, как построить точечную диаграмму и гистограмму, указывающую количество точек данных, принадлежащих различным классам? Я попробовал с scatter(training(:),target_class(:)), но это дает что-то еще!

(c) Как работать с crossvalidate ()? Пример действительно поможет. Спасибо.

1 Ответ

2 голосов
/ 02 апреля 2012

(a) Чтобы вычислить ошибку ошибочной классификации, вам также необходимо знать test_class. Затем вы можете сравнить выходную переменную class с test_class.

misserr = sum(test_class~=class)./numel(test_class);

Если у вас нет тестовых классов, второй выходной аргумент err даст вам оценку ошибки ошибочной классификации при применении сгенерированной модели к обучающему набору.

(b) Если у вас есть только 2 фактора (столбца) в наборе обучающих данных, вы можете просто сделать

scatter(training(:,1),training(:,2),[],target_class)

Соответственно, вы можете использовать SCATTER3 для 3 факторов.

Для большего количества факторов вы можете выполнить Анализ основных компонентов с PRINCOMP и построить 2 или 3 первых компонента.

ОБНОВЛЕНИЕ : Я пропустил, что у вас есть только один фактор. Ваше заявление разброса может работать довольно хорошо. Почему тебе не нравится это? Вы также можете по-разному раскрасить точки, добавив target_class в качестве 4-го аргумента. Вы также можете обмениваться 1-м и 2-м аргументами для лучшего представления.

(c) Вы можете выполнять CV с помощью функций CROSSVAL и CVPARTITION из Statistical Toolbox. См. Документацию для полезных примеров.

Вот еще один вопрос SO - Как использовать тест перекрестной проверки с MATLAB? с несколькими дополнительными опциями.

...