Прогнозные метки для модели классификации ядра по Гауссу
Спрогнозировать метки обучающего набора с помощью бинарной модели классификации ядра и отобразить матрицу путаницы для результирующей классификации.
Загрузить 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')

Mdl - Модель классификации двоичного ядраClassificationKernel объект моделиМодель классификации двоичного ядра, указанная как ClassificationKernel объект модели. Можно создать ClassificationKernel объект модели с использованием fitckernel.
X - Данные предиктора должны быть классифицированыДанные предиктора, подлежащие классификации, указываются как числовая матрица или таблица.
Каждая строка 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 - Прогнозируемые метки классовПрогнозируемые метки класса, возвращаемые как категориальный или символьный массив, логическая или числовая матрица или массив ячеек символьных векторов.
Label имеет n строк, где n - количество наблюдений в Xи имеет тот же тип данных, что и наблюдаемые метки классов (Y) используется для обучения Mdl. (Программа рассматривает строковые массивы как массивы ячеек символьных векторов.)
predict классифицирует наблюдения в класс, дающий наивысший балл.
Score - Классификационные баллыКлассификационные баллы, возвращаемые в виде n-на-2 числового массива, где n - количество наблюдений в X. Score( является оценкой для классификации наблюдения i,j)i в класс j. Mdl.ClassNames сохраняет порядок классов.
Если Mdl.Learner является 'logistic', то классификационные оценки являются задними вероятностями.
Для моделей классификации ядра необработанный показатель классификации для классификации наблюдения x, вектора строки, в положительный класс определяется как
β + b.
(·) - это преобразование наблюдения для расширения признаков.
β - оцененный вектор-столбец коэффициентов.
b - оценочное скалярное смещение.
Необработанная оценка классификации для классификации x в отрицательный класс равна − f (x). Программа классифицирует наблюдения в класс, который дает положительную оценку.
Если модель классификации ядра состоит из учеников логистической регрессии, то программное обеспечение применяет 'logit' преобразование баллов в необработанные оценки классификации (см. ScoreTransform).
Примечания и ограничения по использованию:
predict не поддерживает высокий table данные.
Дополнительные сведения см. в разделе Массивы Tall.
ClassificationKernel | confusionchart | fitckernel | perfcurve | resume
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.