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 = 
  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