exponenta event banner

потеря

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

Синтаксис

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 должно иметь то же количество столбцов, что и данные, используемые для обучения ens. X должно иметь то же количество строк, что и число элементов в Y.

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

Y

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

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

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

    Укажите свою функцию с помощью '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.

Подробнее

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

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

См. также

| | |