exponenta event banner

предсказать

Прогнозные метки для модели классификации ядра по Гауссу

Описание

пример

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);

Figure contains an object of type ConfusionMatrixChart.

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

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

Загрузить 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);

Figure contains an object of type ConfusionMatrixChart.

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

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

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

Figure contains an object of type ConfusionMatrixChart.

Модель неправильно классифицирует одну плохую отдачу радара как хорошую отдачу, и пять хороших отдач радара как плохую отдачу.

Оцените вероятности апостериорного класса для тестового набора и определите качество модели, построив график кривой рабочих характеристик приемника (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')

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

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

свернуть все

Модель классификации двоичного ядра, указанная как ClassificationKernel объект модели. Можно создать ClassificationKernel объект модели с использованием fitckernel.

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

Каждая строка X соответствует одному наблюдению, и каждый столбец соответствует одной переменной.

  • Для числовой матрицы:

    • Переменные в столбцах X должен иметь тот же порядок, что и обучаемые переменные предиктора Mdl.

    • Если вы тренировались Mdl использование таблицы (например, Tbl) и Tbl содержит все числовые переменные предиктора, затем X может быть числовой матрицей. Чтобы обработать числовые предикторы в Tbl в качестве категориального во время обучения, определить категориальные предикторы, используя CategoricalPredictors аргумент пары имя-значение fitckernel. Если Tbl содержит разнородные переменные предиктора (например, числовые и категориальные типы данных) и X является числовой матрицей, то predict выдает ошибку.

  • Для таблицы:

    • predict не поддерживает многозначные переменные или массивы ячеек, отличные от массивов ячеек символьных векторов.

    • Если вы тренировались Mdl использование таблицы (например, Tbl), затем все переменные предиктора в X должны иметь те же имена переменных и типы данных, что и прошедшие обучение Mdl (хранится в Mdl.PredictorNames). Однако порядок столбцов X не обязательно соответствовать порядку столбцов Tbl. Также, Tbl и X может содержать дополнительные переменные (переменные ответа, веса наблюдения и т.д.), но predict игнорирует их.

    • Если вы тренировались Mdl используя числовую матрицу, затем имена предикторов в Mdl.PredictorNames и соответствующие имена переменных предиктора в X должно быть то же самое. Чтобы указать имена предикторов во время обучения, см. PredictorNames аргумент пары имя-значение fitckernel. Все переменные предиктора в X должны быть числовыми векторами. X может содержать дополнительные переменные (переменные ответа, веса наблюдения и т.д.), но predict игнорирует их.

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

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

свернуть все

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

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

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

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

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

Подробнее

свернуть все

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

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

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

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

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

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

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

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

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

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