discardSupportVectors

Отбросьте векторы поддержки линейных бинарных учеников SVM в модели ECOC

Описание

пример

Mdl = discardSupportVectors(MdlSV) возвращает обученную модель выходных кодов с коррекцией ошибок (ECOC) мультикласса (Mdl) от обученного мультикласса модель ECOC (MdlSV), который содержит по крайней мере один линейный CompactClassificationSVM бинарный ученик. Оба Mdl и MdlSV объекты того же типа, любого ClassificationECOC объекты или CompactClassificationECOC объекты.

Mdl имеет эти характеристики:

Примеры

свернуть все

Когда вы обучаете модель ECOC с линейными бинарными учениками SVM, fitcecoc опорожняет Alpha, SupportVectorLabels, и SupportVectors свойства бинарных учеников по умолчанию. Можно принять решение вместо этого сохранить векторы поддержки и связанные значения, и затем отбросить их из модели позже.

Загрузите ирисовый набор данных Фишера.

load fisheriris
rng(1); % For reproducibility

Обучите модель ECOC с помощью целого набора данных. Задайте сохранение векторов поддержки путем передачи в соответствующем шаблоне SVM.

t = templateSVM('SaveSupportVectors',true);
MdlSV = fitcecoc(meas,species,'Learners',t);

MdlSV обученный ClassificationECOC модель с линейными бинарными учениками SVM. По умолчанию, fitcecoc реализует один по сравнению с один кодирующий проект, который требует трех бинарных учеников для изучения с тремя классами.

Доступ к предполагаемому α (альфа) значения с помощью записи через точку.

alpha = cell(3,1);
alpha{1} = MdlSV.BinaryLearners{1}.Alpha;
alpha{2} = MdlSV.BinaryLearners{2}.Alpha;
alpha{3} = MdlSV.BinaryLearners{3}.Alpha;
alpha
alpha=3×1 cell
    { 3x1 double}
    { 3x1 double}
    {23x1 double}

alpha массив ячеек 3 на 1, который хранит ориентировочные стоимости α.

Отбросьте векторы поддержки и связанные значения из модели ECOC.

Mdl = discardSupportVectors(MdlSV);

Mdl похоже на MdlSV, за исключением того, что Alpha, SupportVectorLabels, и SupportVectors свойства всех линейных бинарных учеников SVM пусты ([]).

areAllEmpty = @(x)isempty([x.Alpha x.SupportVectors x.SupportVectorLabels]);
cellfun(areAllEmpty,Mdl.BinaryLearners)
ans = 3x1 logical array

   1
   1
   1

Сравните размеры двух моделей ECOC.

vars = whos('Mdl','MdlSV');
100*(1 - vars(1).bytes/vars(2).bytes)
ans = 4.6743

Mdl приблизительно на 5% меньше, чем MdlSV.

Уменьшайте свое использование памяти путем уплотнения Mdl и затем очистка Mdl и MdlSV из рабочей области.

CompactMdl = compact(Mdl);
clear Mdl MdlSV;

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

idx = randsample(size(meas,1),1)
idx = 63
predictedLabel = predict(CompactMdl,meas(idx,:))
predictedLabel = 1x1 cell array
    {'versicolor'}

trueLabel = species(idx)
trueLabel = 1x1 cell array
    {'versicolor'}

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

свернуть все

Полный или компактный, обученный мультикласс модель ECOC, содержащая по крайней мере одного линейного бинарного ученика SVM, заданного как ClassificationECOC или CompactClassificationECOC модель.

Больше о

свернуть все

Линейный бинарный ученик SVM

В контексте этой страницы линейный двоичный ученик машины опорных векторов (SVM) является созданным использованием классификатора бинарного SVM линейной функции ядра. Если jдвоичный ученик th в модели ECOC Mdl линейный бинарный ученик SVM, затем Mdl.BinaryLearners{j} CompactClassificationSVM объект, где Mdl.BinaryLearners{j}.KernelParameters.Function 'linear'.

Советы

  • По умолчанию и для КПД, fitcecoc опорожняет Alpha, SupportVectorLabels, и SupportVectors свойства для всех линейных бинарных учеников SVM. fitcecoc списки Beta, вместо Alpha, в отображении модели.

    Сохранить Alpha, SupportVectorLabels, и SupportVectors, передайте линейный шаблон SVM, который задает векторы поддержки хранения к fitcecoc. Например, введите:

    t = templateSVM('SaveSupportVectors',true)
    Mdl = fitcecoc(X,Y,'Learners',t);

    Можно удалить векторы поддержки и связанные значения путем передачи получившегося ClassificationECOC модель к discardSupportVectors.

Алгоритмы

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

f(x)=xβ+b.

β является Beta свойством и b является Bias свойство бинарных учеников. Можно получить доступ к этим свойствам для каждого линейного бинарного ученика SVM в массиве ячеек Mdl.BinaryLearners. Для получения дополнительной информации о вычислении счета SVM смотрите Машины опорных векторов для Бинарной Классификации.

Представленный в R2015a