kfoldPredict

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

Описание

пример

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

пример

[label,score] = kfoldPredict(CVMdl) также возвращает классификационные оценки для обоих классов.

Примеры

свернуть все

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

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

load ionosphere

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

rng(1); % 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

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

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

label = kfoldPredict(CVMdl);

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

C = confusionchart(Y,label);

Figure contains an object of type ConfusionMatrixChart.

The CVMdl неправильные классификации моделей 32 хорошо ('g') радар возвращается как плохой ('b') и ошибочно классифицирует 7 плохих возвраты радара как хорошие.

Оцените вероятности апостериорного класса с помощью перекрестно проверенного двоичного классификатора ядра и определите качество модели путем построения графика приемника кривой рабочей характеристики (ROC). Перекрестно проверенные модели классификации ядра возвращают апостериорные вероятности только для учащихся с логистической регрессией.

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

load ionosphere

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

rng(1); % For reproducibility 
CVMdl = fitckernel(X,Y,'Crossval','on', ...
    'ClassNames',{'b','g'},'Learner','logistic')
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'.

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

[~,posterior] = kfoldPredict(CVMdl);

Область выхода posterior - матрица с двумя столбцами и n строки, где n количество наблюдений. Столбец i содержит апостериорные вероятности CVMdl.ClassNames(i) учитывая конкретное наблюдение.

Получите ложные и истинные положительные скорости и оцените площадь под кривой (AUC). Укажите, что второй класс является положительным классом.

[fpr,tpr,~,auc] = perfcurve(Y,posterior(:,2),CVMdl.ClassNames(2));
auc
auc = 0.9441

AUC близок к 1, что указывает на то, что модель хорошо предсказывает метки.

Постройте график кривой ROC.

plot(fpr,tpr)
xlabel('False positive rate')
ylabel('True positive rate')
title('ROC Curve')

Figure contains an axes. The axes with title ROC Curve contains an object of type line.

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

свернуть все

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

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

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

свернуть все

Предсказанные метки классов, возвращенные как категориальный или символьный массив, логическая или числовая матрица или массив ячеек из векторов символов.

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

kfoldPredict классифицирует наблюдения в класс, давая наивысший счет.

Классификационные оценки, возвращенные как n-на-2 числовой массив, где n - количество наблюдений в X. score(i,j) - счет для классификации наблюдений i в j классов. Порядок классов хранится в CVMdl.ClassNames.

Если CVMdl.Trained{1}.Learner является 'logistic', тогда классификационные оценки являются апостериорными вероятностями.

Подробнее о

свернуть все

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

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

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

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

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

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

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

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

Введенный в R2018b