потеря

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

Синтаксис

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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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.ClassNames. S является матрицей очков классификации, подобных выводу 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.

Больше о

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

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