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 имя аргумента и 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- 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'

Вектор символов или строковый скаляр для определения выхода 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

Больше о

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

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

| | | |