resubMargin

Класс: ClassificationNaiveBayes

Поля классификации для наивных классификаторов Байеса перезаменой

Синтаксис

m = resubMargin(Mdl)

Описание

пример

m = resubMargin(Mdl) возвращает поля классификации перезамены (m) для наивного классификатора Байеса Mdl с помощью данных тренировки, хранимых в Mdl.X и соответствующих метках класса, сохраненных в Mdl.Y.

Входные параметры

развернуть все

Полностью обученный наивный классификатор Байеса, заданный как модель ClassificationNaiveBayes, обученная fitcnb.

Выходные аргументы

развернуть все

Поля классификации, возвращенные как числовой вектор.

m имеет ту же длину, равную size(Mdl.X,1). Каждая запись m является полем классификации соответствующего наблюдения (строка) Mdl.X и элемент Mdl.Y.

Примеры

развернуть все

Загрузите ирисовый набор данных Фишера.

load fisheriris
X = meas;    % Predictors
Y = species; % Response

Обучите наивный классификатор Байеса. Это - хорошая практика, чтобы задать порядок класса. Примите, что каждый предиктор условно, нормально распределен, учитывая свою метку.

Mdl = fitcnb(X,Y,'ClassNames',{'setosa','versicolor','virginica'});

Mdl является классификатором ClassificationNaiveBayes.

Оцените поля классификации в выборке. Отобразите распределение полей с помощью коробчатой диаграммы.

m = resubMargin(Mdl);

figure;
boxplot(m);
h = gca;
iqr = quantile(m,0.75) - quantile(m,0.25);
h.YLim = median(m) + iqr*[-4 4];
title 'Boxplot of the Margins';

Поле наблюдения является наблюдаемым (TRUE) счетом класса минус максимальный ложный счет класса среди всех очков в соответствующем классе. Классификаторы, которые приводят к относительно большим полям, желательны.

Мера по полям классификатора, для каждого наблюдения, различие между истинным классом наблюдало счет и максимальный ложный счет класса к конкретному классу. Один способ выполнить выбор функции состоит в том, чтобы сравнить поля в выборке от многоуровневых моделей. Базирующийся только на этом критерии, модель с самыми высокими полями является лучшей моделью.

Загрузите ирисовый набор данных Фишера. Задайте два набора данных:

  • fullX содержит все предикторы (кроме удаленного столбца 0s).

  • partX содержит последние 20 предикторов.

load fisheriris
X = meas;    % Predictors
Y = species; % Response
fullX = X;
partX = X(:,3:4);

Обучите наивные классификаторы Байеса каждому набору предиктора.

FullMdl = fitcnb(fullX,Y);
PartMdl = fitcnb(partX,Y);

Оцените поля в выборке для каждого классификатора. Вычислите доверительные интервалы для каждой выборки.

fullM = resubMargin(FullMdl);
partM = resubMargin(PartMdl);
n = size(X,1);
fullMCI = mean(fullM) + 2*[-std(fullM)/n std(fullM)/n]
fullMCI = 1×2

    0.8898    0.8991

partMCI = mean(partM) + 2*[-std(partM)/n std(partM)/n]
partMCI = 1×2

    0.9129    0.9209

Доверительные интервалы являются трудными, и взаимоисключающими. Граничный доверительный интервал классификатора, обученного с помощью только предикторы 3 и 4, имеет более высокие значения, чем та из полной модели. Поэтому модель, обученная на двух предикторах, имеет лучшую производительность в выборке.

Больше о

развернуть все