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.

Больше о

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

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

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

| | |