exponenta event banner

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.

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', то классификационные оценки являются задними вероятностями.

Подробнее

свернуть все

Оценка классификации

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

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

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

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

  • b - оценочное скалярное смещение.

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

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

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