kfoldLoss

Потеря классификации для наблюдений, не используемых для обучения

Синтаксис

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

Описание

L = kfoldLoss(ens) возвращает потерю, полученную перекрестной подтвержденной моделью ens классификации. Для каждого сгиба этот метод вычисляет потерю классификации для, окутывают наблюдения с помощью модели, обученной на наблюдениях из сгиба.

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

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

ens

Объект класса ClassificationPartitionedEnsemble. Создайте ens с fitcensemble наряду с одной из опций перекрестной проверки: 'crossval', 'kfold', 'holdout', 'leaveout' или 'cvpartition'. Также создайте ens из ансамбля классификации с crossval.

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

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

'folds'

Индексы сгибов в пределах от 1 к ens .KFold. Используйте только эти сгибы для прогнозов.

Значение по умолчанию: 1:ens.KFold

'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-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 числовая матрица затрат misclassification. Например, Cost = ones(K) - eye(K) задает стоимость 0 для правильной классификации и 1 для misclassification.

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

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

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

'mode'

Вектор символов или скаляр строки для определения вывода kfoldLoss:

  • 'average'L является скаляром, потеря, усредненная по всем сгибам.

  • 'individual'L является вектором длины ens .KFold, где каждая запись является потерей для сгиба.

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

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

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

L

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

Примеры

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

Загрузите набор данных ionosphere.

load ionosphere

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

t = templateTree('MaxNumSplits',1);
ens = fitcensemble(X,Y,'Method','AdaBoostM1','Learners',t);

Перекрестный подтвердите ансамбль, использующий 10-кратную перекрестную проверку.

cvens = crossval(ens);

Оцените перекрестную подтвержденную ошибку классификации.

L = kfoldLoss(cvens)
L = 0.0655

Больше о

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

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

| | | |