Классифицируйте наблюдения на перекрестную подтвержденную модель классификации ядер
возвращает метки класса, предсказанные перекрестной подтвержденной, бинарной моделью ядра (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')
CVMdl
— Перекрестная подтвержденная, бинарная модель классификации ядерClassificationPartitionedKernel
объект моделиПерекрестная подтвержденная, бинарная модель классификации ядер в виде ClassificationPartitionedKernel
объект модели. Можно создать ClassificationPartitionedKernel
модель при помощи fitckernel
и определение любого из аргументов пары "имя-значение" перекрестной проверки.
Получить оценки, kfoldPredict
применяется те же данные раньше перекрестный подтверждали модель классификации ядер (X
и Y
).
label
— Предсказанные метки классаПредсказанные метки класса, возвращенные как категориальное или символьный массив, логическая или числовая матрица или массив ячеек из символьных векторов.
label
имеет строки n, где n является количеством наблюдений в X
, и имеет совпадающий тип данных, когда наблюдаемый класс помечает (Y
) используемый, чтобы обучить CVMdl
. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)
kfoldPredict
классифицирует наблюдения в класс, дающий к самому высокому счету.
score
— Классификационные оценкиКлассификационные оценки, возвращенные как n-by-2 числовой массив, где n является количеством наблюдений в X
. score(i,j)
счет к классификации наблюдения i
в класс j
. Порядок классов хранится в CVMdl.ClassNames
.
Если CVMdl.Trained{1}.Learner
'logistic'
, затем классификационные оценки являются апостериорными вероятностями.
Для моделей классификации ядер, необработанного classification score для классификации наблюдения x, вектор-строка, в положительный класс задан
преобразование наблюдения для расширения функции.
β является предполагаемым вектор-столбцом коэффициентов.
b является предполагаемым скалярным смещением.
Необработанная классификационная оценка для классификации x в отрицательный класс является −f (x). Программное обеспечение классифицирует наблюдения в класс, который дает к положительному счету.
Если модель классификации ядер состоит из учеников логистической регрессии, то программное обеспечение применяет 'logit'
выиграйте преобразование к необработанным классификационным оценкам (см. ScoreTransform
).
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.