exponenta event banner

ClassificationPartitionedKernelECOC

Перекрестная проверка модели выходных кодов с исправлением ошибок ядра (ECOC) для многоклассовой классификации

Описание

ClassificationPartitionedKernelECOC - модель выходных кодов с исправлением ошибок (ECOC), состоящая из моделей классификации ядра, обученная на перекрестно проверенных складках. Оцените качество классификации путем перекрестной проверки с использованием одной или нескольких функций «kfold»: kfoldPredict, kfoldLoss, kfoldMargin, и kfoldEdge.

Каждый метод «kfold» использует модели, обученные тренировочным (кратным) наблюдениям, чтобы предсказать ответ для валидационных (многократных) наблюдений. Например, предположим, что выполняется перекрестная проверка с использованием пяти сгибов. В этом случае программное обеспечение случайным образом распределяет каждое наблюдение на пять групп одинакового размера (примерно). Тренировочная складка содержит четыре группы (то есть примерно 4/5 данных), а проверочная складка содержит другую группу (то есть примерно 1/5 данных). В этом случае перекрестная проверка выполняется следующим образом:

  1. Программное обеспечение обучает первую модель (хранится в CVMdl.Trained{1}) с использованием наблюдений в последних четырех группах и резервирует наблюдения в первой группе для проверки.

  2. Программное обеспечение обучает вторую модель (хранится в CVMdl.Trained{2}) с использованием наблюдений в первой группе и трех последних группах. Программа резервирует наблюдения во второй группе для проверки.

  3. Программное обеспечение работает аналогичным образом для третьей, четвертой и пятой моделей.

При проверке с помощью kfoldPredictпрограммное обеспечение вычисляет прогнозы для наблюдений в группе i с использованием i-й модели. Короче говоря, программное обеспечение оценивает отклик для каждого наблюдения, используя модель, обученную без этого наблюдения.

Примечание

ClassificationPartitionedKernelECOC объекты модели не хранят набор данных предиктора.

Создание

Можно создать ClassificationPartitionedKernelECOC модель путем обучения модели ECOC с использованием fitcecoc и указание следующих аргументов пары имя-значение:

  • 'Learners'- Установите значение в 'kernel', объект шаблона, возвращенный templateKernelили массив ячеек таких объектов шаблона.

  • Один из аргументов 'CrossVal', 'CVPartition', 'Holdout', 'KFold', или 'Leaveout'.

Дополнительные сведения см. в разделе fitcecoc.

Свойства

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

Свойства перекрестной проверки

Это свойство доступно только для чтения.

Имя модели с перекрестной проверкой, указанное как символьный вектор.

Например, 'KernelECOC' определяет модель ECOC ядра с перекрестной проверкой.

Типы данных: char

Это свойство доступно только для чтения.

Число скаляров с перекрестной проверкой, указанное как положительный целочисленный скаляр.

Типы данных: double

Это свойство доступно только для чтения.

Значения параметров перекрестной проверки, заданные как объект. Значения параметров соответствуют значениям аргументов пары имя-значение, используемым для перекрестной проверки классификатора ECOC. ModelParameters не содержит оценочных параметров.

Вы можете получить доступ к свойствам ModelParameters с использованием точечной нотации.

Это свойство доступно только для чтения.

Количество наблюдений в обучающих данных, указанных как положительный числовой скаляр.

Типы данных: double

Это свойство доступно только для чтения.

Раздел данных, указывающий, как программное обеспечение разбивает данные на складки перекрестной проверки, указанные как cvpartition модель.

Это свойство доступно только для чтения.

Компактные классификаторы, обученные складкам перекрестной проверки, указанные как массив ячеек CompactClassificationECOC модели. Trained имеет k ячеек, где k - количество складок.

Типы данных: cell

Это свойство доступно только для чтения.

Веса наблюдений, используемые для перекрестной проверки модели, заданные как числовой вектор. W имеет NumObservations элементы.

Программное обеспечение нормализует веса, используемые для обучения, так, чтобы sum(W,'omitnan') является 1.

Типы данных: single | double

Это свойство доступно только для чтения.

Наблюдаемые метки классов, используемые для перекрестной проверки модели, указанные как категориальный или символьный массив, логический или числовой вектор или массив ячеек символьных векторов. Y имеет NumObservations элементы и имеют тот же тип данных, что и входной аргумент Y которые вы передаете fitcecoc для перекрестной проверки модели. (Программа рассматривает строковые массивы как массивы ячеек символьных векторов.)

Каждая строка Y представляет наблюдаемую классификацию соответствующей строки данных предиктора.

Типы данных: categorical | char | logical | single | double | cell

Свойства ECOC

Это свойство доступно только для чтения.

Двоичная функция потери ученика, заданная как вектор символов, представляющий имя функции потери.

По умолчанию, если все двоичные ученики являются моделями классификации ядра с использованием SVM, то BinaryLoss является 'hinge'. Если все двоичные ученики являются моделями классификации ядра с использованием логистической регрессии, то BinaryLoss является 'quadratic'. Чтобы потенциально повысить точность, укажите бинарную функцию потерь, отличную от функции по умолчанию, во время прогнозирования или вычисления потерь с помощью 'BinaryLoss' аргумент пары имя-значение kfoldPredict или kfoldLoss.

Типы данных: char

Это свойство доступно только для чтения.

Двоичные метки класса учащегося, указанные как числовая матрица или [].

  • Если матрица кодирования одинакова по всем складкам, то BinaryY является NumObservations-by-L матрица, где L - число двоичных учеников (size(CodingMatrix,2)).

    Элементы BinaryY являются –1, 0, или 1и значения соответствуют дихотомическим присвоениям классов. В этой таблице описывается процесс обучения j назначает наблюдение k к дихотомическому классу, соответствующему значению BinaryY(k,j).

    СтоимостьНазначение класса Dichotomous
    –1Ученик j назначает наблюдение k отрицательному классу.
    0Перед началом обучения учащийся j удаляет наблюдение k из набора данных.
    1Ученик j назначает наблюдение k к положительному классу.

  • Если матрица кодирования различается по складкам, то BinaryY пуст ([]).

Типы данных: double

Это свойство доступно только для чтения.

Коды, определяющие назначения классов для двоичных учеников, указанные как числовая матрица или [].

  • Если матрица кодирования одинакова по всем складкам, то CodingMatrix - матрица K-by-L, где K - число классов, а L - число двоичных учеников.

    Элементы CodingMatrix являются –1, 0, или 1и значения соответствуют дихотомическим присвоениям классов. В этой таблице описывается процесс обучения j назначает наблюдения в классе i к дихотомическому классу, соответствующему значению CodingMatrix(i,j).

    СтоимостьНазначение класса Dichotomous
    –1Ученик j назначает наблюдения в классе i отрицательному классу.
    0Перед началом обучения учащийся j удаляет наблюдения в классе i из набора данных.
    1Ученик j назначает наблюдения в классе i к положительному классу.

  • Если матрица кодирования различается по складкам, то CodingMatrix пуст ([]). Можно получить матрицу кодирования для каждого сворачивания с помощью Trained собственность. Например, CVMdl.Trained{1}.CodingMatrix - матрица кодирования в первой последовательности перекрестно проверенной модели ECOC CVMdl.

Типы данных: double | single | int8 | int16 | int32 | int64

Другие свойства классификации

Это свойство доступно только для чтения.

Индексы категориального предиктора, указанные как вектор положительных целых чисел. CategoricalPredictors содержит значения индекса, соответствующие столбцам данных предиктора, которые содержат категориальные предикторы. Если ни один из предикторов не категоричен, то это свойство пустое ([]).

Типы данных: single | double

Это свойство доступно только для чтения.

Уникальные метки классов, используемые в обучении, указанные как категориальный или символьный массив, логический или числовой вектор или массив ячеек символьных векторов. ClassNames имеет тот же тип данных, что и свойство наблюдаемых меток классов Y и определяет порядок классов.

Типы данных: categorical | char | logical | single | double | cell

Это свойство доступно только для чтения.

Затраты на неправильную классификацию, указанные как квадратная числовая матрица. Cost имеет K строк и столбцов, где K - количество классов.

Cost(i,j) - стоимость классификации точки по классу j если его истинный класс i. Порядок строк и столбцов Cost соответствует порядку классов в ClassNames.

Типы данных: double

Это свойство доступно только для чтения.

Имена предикторов в порядке их появления в данных предиктора, заданных как клеточный массив векторов символов. Длина PredictorNames равно количеству столбцов, используемых в качестве переменных предиктора в обучающих данных X или Tbl.

Типы данных: cell

Это свойство доступно только для чтения.

Вероятности предшествующего класса, определенные как числовой вектор. Prior имеет столько элементов, сколько есть классов в ClassNames, и порядок элементов соответствует элементам ClassNames.

Типы данных: double

Это свойство доступно только для чтения.

Имя ответной переменной, указанное как символьный вектор.

Типы данных: char

Функция преобразования баллов для применения к прогнозируемым баллам, заданная как имя функции или дескриптор функции.

Для модели классификации ядра Mdlи перед преобразованием оценки прогнозируемый показатель классификации для наблюдения x (вектор строки) равен f (x) = T (x) β + b.

  • T (·) - это преобразование наблюдения для расширения признаков.

  • β - оцененный вектор-столбец коэффициентов.

  • b - оценочное скалярное смещение.

Чтобы изменить CVMdl функция преобразования баллов в function, например, использовать точечную нотацию.

  • Для встроенной функции введите этот код и замените function со значением из таблицы.

    CVMdl.ScoreTransform = 'function';

    СтоимостьОписание
    'doublelogit'1/( 1 + e-2x)
    'invlogit'log (x/( 1 - x))
    'ismax'Устанавливает балл для класса с наибольшим баллом в 1 и устанавливает балл для всех остальных классов в 0
    'logit'1/( 1 + e-x)
    'none' или 'identity'x (без преобразования)
    'sign'-1 для x < 0
    0 для x = 0
    1 для x > 0
    'symmetric'2x – 1
    'symmetricismax'Устанавливает балл для класса с наибольшим баллом в 1 и устанавливает балл для всех остальных классов в -1
    'symmetriclogit'2/( 1 + e-x) - 1

  • Для определяемой функции MATLAB ® или функции введите ее дескриптор.

    CVMdl.ScoreTransform = @function;

    function должен принять матрицу исходных баллов для каждого класса, а затем вернуть матрицу того же размера, представляющую преобразованные баллы для каждого класса.

Типы данных: char | function_handle

Функции объекта

kfoldEdgeКрай классификации для перекрестно проверенной модели ECOC ядра
kfoldLossПотеря классификации для перекрестно проверенной модели ECOC ядра
kfoldMarginПоля классификации для перекрестно проверенной модели ECOC ядра
kfoldPredictКлассификация наблюдений в перекрестно проверенной модели ECOC ядра

Примеры

свернуть все

Создание модели классификации ECOC многоклассного ядра с перекрестной проверкой с использованием fitcecoc.

Загрузите набор данных радужки Фишера. X содержит измерения цветов, и Y содержит названия видов цветов.

load fisheriris
X = meas;
Y = species;

Перекрестная проверка модели классификации ECOC многоклассного ядра, которая может идентифицировать вид цветка на основе измерений цветка.

rng(1); % For reproducibility
CVMdl = fitcecoc(X,Y,'Learners','kernel','CrossVal','on')
CVMdl = 
  ClassificationPartitionedKernelECOC
    CrossValidatedModel: 'KernelECOC'
           ResponseName: 'Y'
        NumObservations: 150
                  KFold: 10
              Partition: [1x1 cvpartition]
             ClassNames: {'setosa'  'versicolor'  'virginica'}
         ScoreTransform: 'none'


  Properties, Methods

CVMdl является ClassificationPartitionedKernelECOC модель с перекрестной проверкой. fitcecoc реализует 10-кратную перекрестную проверку по умолчанию. Поэтому CVMdl.Trained содержит массив ячеек 10 на 1 из десяти CompactClassificationECOC модели, по одной на каждую складку. Каждая компактная модель ECOC состоит из бинарных моделей классификации ядра.

Оценка ошибки классификации путем передачи CVMdl кому kfoldLoss.

error = kfoldLoss(CVMdl)
error = 0.0333

Предполагаемая ошибка классификации составляет около 3% неправильно классифицированных наблюдений.

Чтобы изменить параметры по умолчанию при обучении моделей ECOC, состоящих из моделей классификации ядра, создайте шаблон модели классификации ядра с помощью templateKernel, а затем передать шаблон в fitcecoc.

Представлен в R2018b