ClassificationPartitionedKernel

Перекрестно проверенная, двоичная модель классификации ядра

Описание

ClassificationPartitionedKernel является двоичной моделью классификации ядра, обученной на перекрестных проверенных складках. Можно оценить качество классификации, или как хорошо обобщается модель классификации ядра, используя одну или несколько функций «kfold»: kfoldPredict, kfoldLoss, kfoldMargin, и kfoldEdge.

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

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

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

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

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

Примечание

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

Создание

Можно создать ClassificationPartitionedKernel модель путем настройки модели ядра классификации с помощью fitckernel и установка одного из следующих аргументов пары "имя-значение": 'Crossval', 'CVPartition', 'Holdout', 'KFold', или 'Leaveout'.

Свойства

расширить все

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

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

Перекрестное имя модели, заданное как вектор символов.

Для примера, 'Kernel' задает перекрестно проверенную модель ядра.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Cost(i,j) - стоимость классификации точки в класс j если его класс true 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'журнал (x/( 1 - x))
    'ismax'Устанавливает счет для класса с самым большим счетом равным 1 и устанавливает счета для всех других классов равным 0
    'logit'1/(1 + ex)
    'none' или 'identity'x (без преобразования)
    'sign'-1 для x < 0
    0 для x = 0
    1 для x > 0
    'symmetric'2 x – 1
    'symmetricismax'Устанавливает счет для класса с самым большим счетом равным 1 и устанавливает счета для всех других классов равной -1
    'symmetriclogit'2/(1 + ex) – 1

  • Для MATLAB® function или функция, которую вы задаете, вводите указатель на функцию.

    CVMdl.ScoreTransform = @function;

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

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

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

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

Примеры

свернуть все

Загрузите ionosphere набор данных. Этот набор данных имеет 34 предиктора и 351 двоичный ответ для радиолокационных возвратов, либо плохо ('b') или хорошо ('g').

load ionosphere
rng('default') % For reproducibility

Перекрестная проверка модели классификации двоичных ядер. По умолчанию программа использует 10-кратную перекрестную валидацию.

CVMdl = fitckernel(X,Y,'CrossVal','on')
CVMdl = 
  ClassificationPartitionedKernel
    CrossValidatedModel: 'Kernel'
           ResponseName: 'Y'
        NumObservations: 351
                  KFold: 10
              Partition: [1x1 cvpartition]
             ClassNames: {'b'  'g'}
         ScoreTransform: 'none'


  Properties, Methods

numel(CVMdl.Trained)
ans = 10

CVMdl является ClassificationPartitionedKernel модель. Потому что fitckernel реализует 10-кратную перекрестную валидацию, CVMdl содержит 10 ClassificationKernel модели, которые программное обеспечение обучает по обучающим-складным (in-fold) наблюдениям.

Оцените перекрестную ошибку классификации.

kfoldLoss(CVMdl)
ans = 0.0940

Вероятность классификационных ошибок составляет приблизительно 9%.

Введенный в R2018b