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 должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

'LossFun'

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

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

    ЗначениеОписание
    'binodeviance'Биномиальное отклонение
    'classiferror'Неверно классифицированный коэффициент в десятичных числах
    'exponential'Экспоненциальные потери
    'hinge'Потеря шарнира
    'logit'Логистические потери
    'mincost'Минимальные ожидаемые затраты на неправильную классификацию (для классификационных оценок, которые являются апостериорными вероятностями)
    '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 числовой матрицей затрат на неправильную классификацию. Для примера, Cost = ones(K) - eye(K) задает стоимость 0 для правильной классификации и 1 для неправильной классификации.

    Задайте свою функцию, используя '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.

Подробнее о

расширить все

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