margin

Найдите поля классификации для классификатора машины опорных векторов (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 \in fitcsvm когда учебный SVMModel, затем программное обеспечение стандартизирует столбцы данных о предикторе с помощью соответствующих средних значений в SVMModel.Mu и стандартные отклонения в SVMModel.Sigma.

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

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

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

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

Если вы устанавливаете 'Standardize',true \in 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.

Больше о

свернуть все

Ребро классификации

edge является взвешенным средним classification margins.

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

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

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

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

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

m=2yf(x).

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

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

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

classification score 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) = xjx (линейное ядро), то функция счета уменьшает до

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

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

Для получения дополнительной информации смотрите Машины опорных векторов Понимания.

Алгоритмы

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

mj=2yjf(xj),

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

Ссылки

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

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

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

| | | | |

Введенный в R2014a