ClassificationPartitionedKernelECOC

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

Описание

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

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

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

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

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

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

Примечание

Объекты модели 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.

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

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

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

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

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

Типы данных: 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).

    ЗначениеДихотомическое присвоение класса
    –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).

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

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

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

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

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

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

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

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

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

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

Затраты Misclassification, заданные как квадратная числовая матрица. Cost имеет строки и столбцы K, где K является количеством классов.

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

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

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

Предиктор называет в порядке их внешнего вида в данных о предикторе X, заданный как массив ячеек из символьных векторов формы {'x1','x2',...}. Длина PredictorNames равна количеству столбцов в X.

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

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

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

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

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

Имя переменной отклика, заданное как 'Y'. Поскольку модели ClassificationKernel не могут быть обучены на табличных данных, этим свойством всегда является 'Y'.

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

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

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

  • T(·) преобразование наблюдения для расширения функции.

  • β является предполагаемым вектор-столбцом коэффициентов.

  • b является предполагаемым скалярным смещением.

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

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

    CVMdl.ScoreTransform = 'function';

    ЗначениеОписание
    'doublelogit'1/(1 + e –2x)
    'invlogit'журнал (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 = 
  classreg.learning.partition.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

Для просмотра документации необходимо авторизоваться на сайте