exponenta event banner

ClassificationPartitionedKernel

Модель классификации двоичного ядра с перекрестной проверкой

Описание

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

Каждый метод «kfold» использует модели, обученные тренировочным (кратным) наблюдениям, чтобы предсказать ответ для валидационных (многократных) наблюдений. Например, предположим, что выполняется перекрестная проверка с использованием пяти сгибов. В этом случае программное обеспечение случайным образом распределяет каждое наблюдение на пять групп одинакового размера (примерно). Тренировочная складка содержит четыре группы (то есть примерно 4/5 данных), а проверочная складка содержит другую группу (то есть примерно 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 если его истинный класс 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Край классификации для перекрестно проверенной модели классификации ядра
kfoldLossПотеря классификации для перекрестно проверенной модели классификации ядра
kfoldMarginПоля классификации для перекрестно проверенной модели классификации ядра
kfoldPredictКлассифицировать наблюдения в перекрестно проверенной модели классификации ядра

Примеры

свернуть все

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

load ionosphere
rng('default') % For reproducibility

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

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 модели, которые программное обеспечение обучает тренировочным (кратным) наблюдениям.

Оценка кросс-проверенной ошибки классификации.

kfoldLoss(CVMdl)
ans = 0.0940

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

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