loss

Ошибка классификации

Синтаксис

L = loss(obj,X,Y)
L = loss(obj,X,Y,Name,Value)

Описание

L = loss(obj,X,Y) возвращает потерю классификации, которая является скалярным представлением как хорошо obj классифицирует данные на X, когда Y содержит истинные классификации.

При вычислении потери, loss нормирует вероятности класса в Y к вероятностям класса, используемым для обучения, сохраненного в Prior свойство obj.

L = loss(obj,X,Y,Name,Value) возвращает потерю с дополнительными опциями, заданными одним или несколькими Name,Value парные аргументы.

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

obj

Классификатор дискриминантного анализа класса ClassificationDiscriminant или CompactClassificationDiscriminant, обычно созданный с fitcdiscr.

X

Матрица, где каждая строка представляет наблюдение и каждый столбец, представляет предиктор. Количество столбцов в X должен равняться количеству предикторов в obj.

Y

Метки класса, с совпадающим типом данных, как существует в obj. Число элементов Y должен равняться количеству строк X.

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

LossFun

Встроенное имя функции потерь (вектор символов или строковый скаляр в таблице) или указатель на функцию.

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

    ЗначениеОписание
    'binodeviance'Биномиальное отклонение
    'classiferror'Неправильно классифицированный уровень в десятичном числе
    'exponential'Экспоненциальная потеря
    'hinge'Потеря стержня
    'logit'Логистическая потеря
    'mincost'Минимальный ожидал стоимость misclassification (для классификационных оценок, которые являются апостериорными вероятностями),
    'quadratic'Квадратичная потеря

    'mincost' подходит для классификационных оценок, которые являются апостериорными вероятностями. Модели дискриминантного анализа возвращают апостериорные вероятности как классификационные оценки по умолчанию (см. predict).

  • Задайте свою собственную функцию с помощью обозначения указателя на функцию.

    Предположим, что n является количеством наблюдений в X и K быть количеством отличных классов (numel(Mdl.ClassNames)). Ваша функция должна иметь эту подпись

    lossvalue = lossfun(C,S,W,Cost)
    где:

    • Выходной аргумент lossvalue скаляр.

    • Вы выбираете имя функции (lossfun).

    • C n-by-K логическая матрица со строками, указывающими, которые классифицируют соответствующее наблюдение, принадлежит. Порядок следования столбцов соответствует порядку класса в Mdl.ClassNames.

      Создайте C установкой C(p,q) = 1 если наблюдение p находится в классе q, для каждой строки. Установите все другие элементы строки p к 0.

    • S n-by-K числовая матрица классификационных оценок. Порядок следования столбцов соответствует порядку класса в Mdl.ClassNamesS матрица классификационных оценок, похожих на выход predict.

    • W n-by-1 числовой вектор из весов наблюдения. Если вы передаете W, программное обеспечение нормирует их, чтобы суммировать к 1.

    • Cost K-by-K числовая матрица затрат misclassification. Например, Cost = ones(K) - eye(K) задает стоимость 0 для правильной классификации и 1 для misclassification.

    Задайте свое использование функции 'LossFun', @lossfun.

Для получения дополнительной информации о функциях потерь смотрите Потерю Классификации.

Значение по умолчанию: 'mincost'

Weights

Числовой вектор из длины N, где N количество строк X. weights являются неотрицательными. loss нормирует веса так, чтобы веса наблюдения в каждом классе суммировали к априорной вероятности того класса. Когда вы предоставляете weights, loss вычисляет взвешенную потерю классификации.

Значение по умолчанию: ones(N,1)

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

L

Потеря классификации, скаляр. Интерпретация L зависит от значений в weights и lossfun.

Примеры

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

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

load fisheriris

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

Mdl = fitcdiscr(meas,species);

Оцените ошибку классификации модели с помощью учебных наблюдений.

L = loss(Mdl,meas,species)
L = 0.0200

В качестве альтернативы, если Mdl не компактно, затем можно оценить ошибку классификации обучающих выборок путем передачи Mdl к resubLoss.

Больше о

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

Расширенные возможности