discardSupportVectors

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

Синтаксис

Mdl = discardSupportVectors(MdlSV)

Описание

пример

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 = 3x1 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.8583

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