exponenta event banner

край

Поиск полей классификации для классификатора вспомогательных векторных машин (SVM)

Описание

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

m возвращается в виде числового вектора с той же длиной, что и Y. Программное обеспечение оценивает каждую запись m использование обученного классификатора SVM SVMModel, соответствующая строка Xи метка истинного класса Y.

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

пример

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

Примеры

свернуть все

Загрузить ionosphere набор данных.

load ionosphere
rng(1); % For reproducibility

Обучение классификатора SVM. Укажите 15% образец для тестирования, стандартизируйте данные и укажите, что 'g' является положительным классом.

CVSVMModel = fitcsvm(X,Y,'Holdout',0.15,'ClassNames',{'b','g'},...
    'Standardize',true);
CompactSVMModel = CVSVMModel.Trained{1}; ...
    % Extract the trained, compact classifier
testInds = test(CVSVMModel.Partition);   % Extract the test indices
XTest = X(testInds,:);
YTest = Y(testInds,:);

CVSVMModel является ClassificationPartitionedModel классификатор. Он содержит свойство Trained, который представляет собой массив ячеек 1 на 1, содержащий CompactClassificationSVM классификатор, который программное обеспечение обучило с помощью обучающего набора.

Оцените пределы классификации тестовых образцов.

m = margin(CompactSVMModel,XTest,YTest);
m(10:20)
ans = 11×1

    3.5459
    5.5940
    4.9946
    4.5610
   -4.7964
    5.5123
   -2.8773
    1.8671
    9.4992
    9.5024
      ⋮

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

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

Загрузить ionosphere набор данных.

load ionosphere
rng(1); % For reproducibility

Разбейте набор данных на учебные и тестовые наборы. Укажите 15% образец удержания для тестирования.

Partition = cvpartition(Y,'Holdout',0.15);
testInds = test(Partition); % Indices for the test set
XTest = X(testInds,:);
YTest = Y(testInds,:);

Partition определяет раздел набора данных.

Определите два набора данных:

  • fullX содержит все предикторы (за исключением удаленного столбца 0s).

  • partX содержит последние 20 предикторов.

fullX = X;
partX = X(:,end-20:end);

Подготовка классификаторов SVM для каждого набора предикторов. Укажите определение раздела.

FullCVSVMModel = fitcsvm(fullX,Y,'CVPartition',Partition);
PartCVSVMModel = fitcsvm(partX,Y,'CVPartition',Partition);
FCSVMModel = FullCVSVMModel.Trained{1};
PCSVMModel = PartCVSVMModel.Trained{1};

FullCVSVMModel и PartCVSVMModel являются ClassificationPartitionedModel классификаторы. Они содержат свойство Trained, который представляет собой массив ячеек 1 на 1, содержащий CompactClassificationSVM классификатор, который программное обеспечение обучило с помощью обучающего набора.

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

fullM = margin(FCSVMModel,XTest,YTest);
partM = margin(PCSVMModel,XTest(:,end-20:end),YTest);
n = size(XTest,1);
p = sum(fullM < partM)/n
p = 0.2500

Примерно 25% маржи от полной модели меньше, чем у модели с меньшим количеством предикторов. Этот результат говорит о том, что модель, обученная со всеми предикторами, лучше.

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

свернуть все

Модель классификации SVM, указанная как ClassificationSVM объект модели или CompactClassificationSVM объект модели, возвращенный fitcsvm или compactсоответственно.

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

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

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

Если установить 'Standardize',true в fitcsvm при обучении SVMModel, то программное обеспечение стандартизирует столбцы данных предиктора, используя соответствующие средства в SVMModel.Mu и стандартные отклонения в SVMModel.Sigma.

Типы данных: table

Данные предиктора, заданные как числовая матрица.

Каждая строка X соответствует одному наблюдению (также известному как экземпляр или пример), и каждый столбец соответствует одной переменной (также известной как элемент). Переменные в столбцах X должны быть такими же, как переменные, которые обучали SVMModel классификатор.

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

Если установить 'Standardize',true в fitcsvm обучаться SVMModel, то программное обеспечение стандартизирует столбцы X используя соответствующие средства в SVMModel.Mu и стандартные отклонения в SVMModel.Sigma.

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

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

При указании ResponseVarName, то это необходимо сделать как вектор символа или скаляр строки. Например, если переменная ответа сохранена как TBL.Response, затем укажите ResponseVarName как 'Response'. В противном случае программа обрабатывает все столбцы TBL, в том числе TBL.Response, как предикторы.

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

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

Метки класса, указанные как категориальный, символьный или строковый массив, логический или числовой вектор или массив ячеек символьных векторов. Y должен совпадать с типом данных SVMModel.ClassNames. (Программа рассматривает строковые массивы как массивы ячеек символьных векторов.)

Длина Y должно равняться количеству строк в TBL или количество строк в X.

Подробнее

свернуть все

Край классификации

Край - это средневзвешенное значение полей классификации.

Веса являются предшествующими вероятностями классов. При вводе весов программа нормализует их для суммирования с предыдущими вероятностями в соответствующих классах. Программа использует перенормированные веса для вычисления средневзвешенного значения.

Один из способов выбора из нескольких классификаторов, например, выбор элемента, - выбор классификатора, который дает наивысший край.

Маржа классификации

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

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

m = 2yf (x).

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

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

Оценка классификации

Показатель классификации SVM для классификации наблюдения x представляет собой расстояние со знаком от x до границы принятия решения в диапазоне от - ∞ до +∞. Положительный балл для класса указывает, что x прогнозируется в этом классе. Отрицательный балл указывает на обратное.

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

f (x) =∑j=1nαjyjG (xj, x) + b,

где (α1,..., αn, b) - оцененные параметры SVM, G (xj, x) - скалярное произведение в предикторном пространстве между x и векторами поддержки, и сумма включает в себя наблюдения обучающего набора. Отрицательный балл классификации класса для x или балл для прогнозирования x в отрицательный класс равен -f (x).

Если G (xj, x) = xj′x (линейное ядро), то функция оценки уменьшается до

f (x) = (x/s) β + b.

s - шкала ядра, а β - вектор аппроксимированных линейных коэффициентов.

Дополнительные сведения см. в разделе Общие сведения о векторных машинах поддержки.

Алгоритмы

Для двоичной классификации программное обеспечение определяет поле для наблюдения j, mj, как

mj = 2yjf (xj),

где yj ∊ {-1,1} и f (xj) - прогнозируемая оценка наблюдения j для положительного класса. Однако для определения запаса обычно используется mj = yjf (xj).

Ссылки

[1] Кристианини, Н. и Дж. К. Шаве-Тейлор. Введение в поддержку векторных машин и других методов обучения на основе ядра. Кембридж, Великобритания: Cambridge University Press, 2000.

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

Представлен в R2014a