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-на-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
Для просмотра документации необходимо авторизоваться на сайте