предсказать

Предскажите метки для Гауссовой модели классификации ядер

Синтаксис

Label = predict(Mdl,X)
[Label,Score] = predict(Mdl,X)

Описание

пример

Label = predict(Mdl,X) возвращает предсказанные метки класса для каждого наблюдения в данных о предикторе X на основе бинарной Гауссовой модели Mdl классификации ядер.

пример

[Label,Score] = predict(Mdl,X) также возвращает музыку классификации к обоим классам.

Примеры

свернуть все

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

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

load ionosphere

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

rng('default') % For reproducibility
Mdl = fitckernel(X,Y);

Mdl является моделью ClassificationKernel.

Предскажите набор обучающих данных, или перезамену, метки.

label = predict(Mdl,X); 

Создайте матрицу беспорядка.

ConfusionTrain = confusionchart(Y,label);

Модель неправильно классифицирует один радар, возвращаются для каждого класса.

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

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

load ionosphere

Разделите набор данных в наборы обучающих данных и наборы тестов. Задайте 15%-ю выборку затяжки для набора тестов.

rng('default') % For reproducibility
Partition = cvpartition(Y,'Holdout',0.15);
trainingInds = training(Partition); % Indices for the training set
testInds = test(Partition); % Indices for the test set

Обучите бинарную модель классификации ядер использование набора обучающих данных. Хорошая практика должна задать порядок класса.

Mdl = fitckernel(X(trainingInds,:),Y(trainingInds),'ClassNames',{'b','g'}); 

Предскажите метки набора обучающих данных и метки набора тестов.

labelTrain = predict(Mdl,X(trainingInds,:));
labelTest = predict(Mdl,X(testInds,:));

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

ConfusionTrain = confusionchart(Y(trainingInds),labelTrain);

Модель неправильно классифицирует только один радар, возвращаются для каждого класса.

Создайте матрицу беспорядка для набора тестов.

ConfusionTest = confusionchart(Y(testInds),labelTest);

Модель неправильно классифицирует один плохой радар, возвращаются как являющийся хорошей прибылью, и пять хороших радаров возвращаются как являющийся плохими возвратами.

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

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

load ionosphere

Разделите набор данных в наборы обучающих данных и наборы тестов. Задайте 30%-ю выборку затяжки для набора тестов.

rng('default') % For reproducibility
Partition = cvpartition(Y,'Holdout',0.30);
trainingInds = training(Partition); % Indices for the training set
testInds = test(Partition); % Indices for the test set

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

Mdl = fitckernel(X(trainingInds,:),Y(trainingInds), ...
    'ClassNames',{'b','g'},'Learner','logistic');

Предскажите следующие вероятности класса для набора тестов.

[~,posterior] = predict(Mdl,X(testInds,:));

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

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

[fpr,tpr,~,auc] = perfcurve(Y(testInds),posterior(:,2),Mdl.ClassNames(2));
auc
auc = 0.9042

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

Постройте кривую ROC.

figure;
plot(fpr,tpr)
h = gca;
h.XLim(1) = -0.1;
h.YLim(2) = 1.1;
xlabel('False positive rate')
ylabel('True positive rate')
title('ROC Curve')

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

свернуть все

Бинарная модель классификации ядер, заданная как объект модели ClassificationKernel. Можно создать объект модели ClassificationKernel с помощью fitckernel.

Данные о предикторе, заданные как n-by-p числовая матрица, где n является количеством наблюдений и p, являются количеством предикторов, используемых, чтобы обучить Mdl.

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

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

свернуть все

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

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

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

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

Если Mdl.Learner является 'logistic', то очки классификации являются апостериорными вероятностями.

Больше о

свернуть все

Счет классификации

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

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

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

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

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

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

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

Расширенные возможности

Введенный в R2017b