kfoldPredict

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

Синтаксис

label = kfoldPredict(CVMdl)
[label,score] = kfoldPredict(CVMdl)

Описание

пример

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 = 
  classreg.learning.partition.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);

Модель 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 = 
  classreg.learning.partition.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')

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

свернуть все

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

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

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

свернуть все

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

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

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

Очки классификации, возвращенные как n-by-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