loss

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

Синтаксис

L = loss(ens,tbl,ResponseVarName)
L = loss(ens,tbl,Y)
L = loss(ens,X,Y)
L = loss(___,Name,Value)

Описание

L = loss(ens,tbl,ResponseVarName) возвращает ошибку классификации для ансамбля ens вычисленная таблица использования предикторов tbl и истинный класс маркирует tbl.ResponseVarName.

L = loss(ens,tbl,Y) возвращает ошибку классификации для ансамбля ens вычисленная таблица использования предикторов tbl и истинный класс маркирует Y.

L = loss(ens,X,Y) возвращает ошибку классификации для ансамбля ens вычисленная матрица использования предикторов X и истинный класс маркирует Y.

L = loss(___,Name,Value) вычисляет ошибку классификации с дополнительными опциями, заданными одним или несколькими Name,Value парные аргументы, с помощью любого из предыдущих синтаксисов.

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

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

ens

Ансамбль классификации создается с fitcensemble, или компактный ансамбль классификации создается с compact.

tbl

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

Если вы обучили ens использование выборочных данных содержится в table, затем входные данные для этого метода должны также быть в таблице.

ResponseVarName

Имя переменной отклика, заданное как имя переменной в tbl.

Необходимо задать ResponseVarName как вектор символов или скаляр строки. Например, если переменная отклика Y хранится как tbl.Y, затем задайте его как 'Y'. В противном случае программное обеспечение обрабатывает все столбцы tbl, включая Y, как предикторы, когда обучение модель.

X

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

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

Y

Метки класса наблюдений в tbl или XY должен иметь тот же тип, как классификация раньше обучала ens, и его число элементов должно равняться количеству строк tbl или X.

Аргументы в виде пар имя-значение

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

'learners'

Индексы слабых учеников в ансамбле в пределах от 1 к ens.NumTrained. loss использование только эти ученики для вычисления потери.

Значение по умолчанию: 1:NumTrained

'Lossfun'

Функция потерь, заданная как разделенная запятой пара, состоящая из 'LossFun' и встроенное имя функции потерь или указатель на функцию.

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

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

    'mincost' подходит для баллов классификации, которые являются апостериорными вероятностями.

    • Сложенный в мешок и ансамбли подпространства возвращают апостериорные вероятности по умолчанию (ens.Method 'Bag' или 'Subspace').

    • Если методом ансамбля является 'AdaBoostM1', 'AdaBoostM2', GentleBoost, или 'LogitBoost', затем, чтобы использовать апостериорные вероятности в качестве баллов классификации, необходимо указать, что счет двойного логита преобразовывает путем ввода

      ens.ScoreTransform = 'doublelogit';

    • Для всех других методов ансамбля программное обеспечение не поддерживает апостериорные вероятности как баллы классификации.

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

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

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

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

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

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

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

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

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

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

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

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

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

'mode'

Значение выхода L:

  • 'ensemble' L скалярное значение, потеря для целого ансамбля.

  • 'individual' L вектор с одним элементом на обученного ученика.

  • 'cumulative' L вектор в который элемент J получен при помощи учеников 1:J из списка входов учеников.

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

'UseObsForLearner'

Логическая матрица размера N- T, где:

  • N количество строк X.

  • T количество слабых учеников в ens.

Когда UseObsForLearner(i,j) true, ученик j используется в предсказании класса строки i из X.

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

'weights'

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

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

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

L

Потеря классификации, по умолчанию часть неправильно классифицированных данных. L может быть вектор и может означать разные вещи, в зависимости от настроек пары "имя-значение".

Примеры

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

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

load fisheriris

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

t = templateTree('MaxNumSplits',1);
ens = fitcensemble(meas,species,'Method','AdaBoostM2','Learners',t);

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

L = loss(ens,meas,species)
L = 0.0333

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

Больше о

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

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

Смотрите также

| | |