margin

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

Описание

пример

m = margin(Mdl,X,Y) возвращает поля классификации для бинарной Гауссовой модели Mdl классификации ядер использование данных о предикторе в X и соответствующий класс помечает в Y.

m = margin(Mdl,Tbl,ResponseVarName) возвращает поля классификации для обученного классификатора ядра Mdl использование данных о предикторе в таблице Tbl и класс помечает в Tbl.ResponseVarName.

m = margin(Mdl,Tbl,Y) возвращает поля классификации для классификатора Mdl использование данных о предикторе в таблице Tbl и класс помечает в векторном Y.

Примеры

свернуть все

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

Оцените поля набора обучающих данных и поля набора тестов.

mTrain = margin(Mdl,X(trainingInds,:),Y(trainingInds));
mTest = margin(Mdl,X(testInds,:),Y(testInds));

Постройте оба набора полей с помощью диаграмм.

boxplot([mTrain; mTest],[zeros(size(mTrain,1),1); ones(size(mTest,1),1)], ...
    'Labels',{'Training set','Test set'});
title('Training-Set and Test-Set Margins')

Figure contains an axes. The axes with title Training-Set and Test-Set Margins contains 14 objects of type line.

Граничное распределение набора обучающих данных расположено выше, чем граничное распределение набора тестов.

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

Загрузите 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
XTrain = X(trainingInds,:);
YTrain = Y(trainingInds);
testInds = test(Partition); % Indices for the test set
XTest = X(testInds,:);
YTest = Y(testInds);

Случайным образом выберите 10% переменных предикторов.

p = size(X,2); % Number of predictors
idxPart = randsample(p,ceil(0.1*p));

Обучите две бинарных модели классификации ядер: тот, который использует все предикторы и тот, который использует случайные 10%.

Mdl = fitckernel(XTrain,YTrain);
PMdl = fitckernel(XTrain(:,idxPart),YTrain);

Mdl и PMdl ClassificationKernel модели.

Оцените поля набора тестов для каждого классификатора.

fullMargins = margin(Mdl,XTest,YTest);
partMargins = margin(PMdl,XTest(:,idxPart),YTest);

Постройте распределение граничных наборов с помощью диаграмм.

boxplot([fullMargins partMargins], ...
    'Labels',{'All Predictors','10% of the Predictors'});
title('Test-Set Margins')

Figure contains an axes. The axes with title Test-Set Margins contains 14 objects of type line.

Граничное распределение PMdl расположен выше, чем граничное распределение Mdl. Поэтому PMdl модель является лучшим классификатором.

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

свернуть все

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

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

Длина Y и количество наблюдений в X должно быть равным.

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

Класс помечает в виде категориального, символа или массива строк; логический или числовой вектор; или массив ячеек из символьных векторов.

  • Тип данных Y должен совпасть с типом данных Mdl.ClassNames. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)

  • Отличные классы в Y должно быть подмножество Mdl.ClassNames.

  • Если Y символьный массив, затем каждый элемент должен соответствовать одной строке массива.

  • Длина Y должно быть равно количеству наблюдений в X или Tbl.

Типы данных: categorical | char | string | logical | single | double | cell

Выборочные данные раньше обучали модель в виде таблицы. Каждая строка Tbl соответствует одному наблюдению, и каждый столбец соответствует одному переменному предиктору. Опционально, Tbl может содержать дополнительные столбцы для весов наблюдения и переменной отклика. Tbl должен содержать все предикторы, используемые, чтобы обучить Mdl. Многостолбцовые переменные и массивы ячеек кроме массивов ячеек из символьных векторов не позволены.

Если Tbl содержит переменную отклика, используемую, чтобы обучить Mdl, затем вы не должны задавать ResponseVarName или Y.

Если вы обучаете Mdl использование выборочных данных, содержавшихся в таблице, затем входные данные для margin должен также быть в таблице.

Имя переменной отклика в виде имени переменной в Tbl. Если Tbl содержит переменную отклика, используемую, чтобы обучить Mdl, затем вы не должны задавать ResponseVarName.

Если вы задаете ResponseVarName, затем необходимо задать его как вектор символов или строковый скаляр. Например, если переменная отклика хранится как Tbl.Y, затем задайте ResponseVarName как 'Y'. В противном случае программное обеспечение обрабатывает все столбцы Tbl, включая Tbl.Y, как предикторы.

Переменная отклика должна быть категориальным, символом или массивом строк; логический или числовой вектор; или массив ячеек из символьных векторов. Если переменная отклика является символьным массивом, то каждый элемент должен соответствовать одной строке массива.

Типы данных: char | string

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

свернуть все

Поля классификации, возвращенные как n-by-1 числовой вектор-столбец, где n является количеством наблюдений в X.

Больше о

свернуть все

Поле классификации

classification margin для бинарной классификации, для каждого наблюдения, различия между классификационной оценкой для истинного класса и классификационной оценкой для ложного класса.

Программное обеспечение задает поле классификации для бинарной классификации как

m=2yf(x).

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

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

Классификационная оценка

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

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

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

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

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

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

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

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

Смотрите также

| | |

Введенный в R2017b