exponenta event banner

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'Минимальная ожидаемая стоимость неправильной классификации (для классификационных оценок, которые являются задними вероятностями)
    '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'

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

Подробнее

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