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

Больше о

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

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

| | | |