resubLoss

Ошибка классификации путем реподституции

Синтаксис

L = resubLoss(ens)
L = resubLoss(ens,Name,Value)

Описание

L = resubLoss(ens) возвращает потери реституции, означающие потери, рассчитанные для данных, которые fitcensemble используется для создания ens.

L = resubLoss(ens,Name,Value) вычисляет убыток с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар. Можно задать несколько аргументы пары "имя-значение" в любом порядке как Name1,Value1,…,NameN,ValueN.

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

ens

Классификационный ансамбль, созданный с fitcensemble.

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

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

'learners'

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

По умолчанию: 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-by- K логическая матрица со строками, указывающими, какому классу принадлежит соответствующее наблюдение. Порядок столбцов соответствует порядку классов в ens.ClassNames.

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

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

    • W является n-by-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'

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

L

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

Примеры

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

Загрузите набор данных радужки Фишера.

load fisheriris

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

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

Оцените ошибку классификации реституции.

loss = resubLoss(ens)
loss = 0.0333

Подробнее о

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