kfoldEdge

Классификационные ребра для перекрестно проверенной модели классификации ядра

Описание

пример

edge = kfoldEdge(CVMdl) возвращает ребро классификации, полученное перекрестно-проверенной, двоичной моделью ядра (ClassificationPartitionedKernel) CVMdl. Для каждой складки, kfoldEdge вычисляет ребро классификации для наблюдений с гибкой валидации, используя модель, обученную наблюдениям с гибкой обучения.

edge = kfoldEdge(CVMdl,Name,Value) возвращает ребро классификации с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение". Для примера задайте количество складок или уровень агрегации.

Примеры

свернуть все

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

load ionosphere

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

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

CVMdl является ClassificationPartitionedKernel модель. По умолчанию программное обеспечение реализует 10-кратную перекрестную валидацию. Чтобы задать другое количество складок, используйте 'KFold' аргумент пары "имя-значение" вместо 'Crossval'.

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

edge = kfoldEdge(CVMdl)
edge = 1.5585

Кроме того, можно получить ребра в относительных единицах путем определения пары "имя-значение" 'Mode','individual' в kfoldEdge.

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

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

load ionosphere

Случайным образом выберите половину переменных предиктора.

rng(1); % For reproducibility
p = size(X,2); % Number of predictors
idxPart = randsample(p,ceil(0.5*p));

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

CVMdl = fitckernel(X,Y,'CrossVal','on');
PCVMdl = fitckernel(X(:,idxPart),Y,'CrossVal','on');

CVMdl и PCVMdl являются ClassificationPartitionedKernel модели. По умолчанию программное обеспечение реализует 10-кратную перекрестную валидацию. Чтобы задать другое количество складок, используйте 'KFold' аргумент пары "имя-значение" вместо 'Crossval'.

Оцените ребро k-складки для каждого классификатора.

fullEdge = kfoldEdge(CVMdl)
fullEdge = 1.5142
partEdge = kfoldEdge(PCVMdl)
partEdge = 1.8910

Основанный на ребрах k-складки, классификатор, который использует половину предикторов, является лучшей моделью.

Входные параметры

свернуть все

Перекрестно проверенная, двоичная модель классификации ядра, заданная как ClassificationPartitionedKernel объект модели. Можно создать ClassificationPartitionedKernel моделировать при помощи fitckernel и определение любого из аргументов пары "имя-значение" перекрестной проверки.

Чтобы получить оценки, kfoldEdge применяет те же данные, что и для перекрестной проверки модели классификации ядра (X и Y).

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: kfoldEdge(CVMdl,'Mode','individual') возвращает ребро классификации для каждой складки.

Индексы сгиба для предсказания, заданные как разделенная разделенными запятой парами, состоящая из 'Folds' и числовой вектор положительных целых чисел. Элементы Folds должен находиться в области значений от 1 на CVMdl.KFold.

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

Пример: 'Folds',[1 4 10]

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

Уровень агрегации для выхода, заданный как разделенная разделенными запятой парами, состоящая из 'Mode' и 'average' или 'individual'.

В этой таблице описываются значения.

ЗначениеОписание
'average'Выход является скаляром средним по всем складкам.
'individual'Выход является вектором длины k содержащим одно значение на складку, где k количество складок.

Пример: 'Mode','individual'

Выходные аргументы

свернуть все

Классификационное ребро, возвращенный как числовой скаляр или числовой вектор-столбец.

Если Mode является 'average', затем edge - средняя классификация, ребро по всем складкам. В противном случае edge является k числовым вектором-1, содержащим ребро классификации для каждой складки, где k количество складок.

Подробнее о

свернуть все

Классификационное ребро

Это classification edge - средневзвешенное значение классификационных полей.

Один из способов выбрать один из нескольких классификаторов, например, для выбора признаков, - выбрать классификатор, который дает наибольшее ребро.

Классификационное поле

Для каждого наблюдения classification margin двоичной классификации является различие между классификационной оценкой для истинного класса и классификационной оценкой для ложного класса.

Программное обеспечение определяет классификационный запас для двоичной классификации как

m=2yf(x).

x является наблюдением. Если истинная метка x является положительным классом, то y равен 1, и -1 в противном случае. f (x) является классификационной оценкой положительного класса для x наблюдений. Классификационное поле обычно определяется как m = y f (x).

Если поля находятся в одной шкале, то они служат классификационной доверительной мерой. Среди нескольких классификаторов лучше те, которые дают большую маржу.

Классификационная оценка

Для моделей классификации ядра необработанный classification score для классификации x наблюдений, вектора-строки, в положительный класс задан как

f(x)=T(x)β+b.

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

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

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

Необработанная классификационная оценка для классификации x в отрицательный класс - f (x). Программа классифицирует наблюдения в класс, который дает положительный счет.

Если модель классификации ядра состоит из обучающихся логистической регрессии, то программное обеспечение применяет 'logit' преобразование счета в необработанные классификационные оценки (см. ScoreTransform).

Введенный в R2018b