exponenta event banner

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) с помощью точечного обозначения.

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 array
    { 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.7075

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-й двоичный ученик в модели 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