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