compact

Класс: RegressionSVM

Компактная машина опорных векторов

Синтаксис

compactMdl = compact(mdl)

Описание

compactMdl = compact(mdl) возвращает модель регрессии компактной машины опорных векторов (SVM), compactMdl, которая является компактной версией полной, обученной модели регрессии SVM mdl.

compactMdl не содержит обучающих данных, в то время как mdl содержит обучающие данные в его свойствах mdl.X и mdl.Y.

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

расширить все

Полная, обученная регрессионая модель SVM, заданная как RegressionSVM модель, возвращенная fitrsvm.

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

расширить все

Компактная регрессионая модель SVM, возвращенная как CompactRegressionSVM модель.

Спрогнозируйте значения отклика с помощью compactMdl именно так, как вы бы использовали mdl. Однако с compactMdl не содержит обучающих данных, вы не можете выполнить определенные задачи, такие как перекрестная валидация.

Примеры

расширить все

Этот пример показывает, как уменьшить размер полной, обученной регрессионой модели SVM путем отбрасывания обучающих данных и некоторой информации, связанной с процессом обучения.

Этот пример использует данные abalone из репозитория машинного обучения UCI. Загрузите данные и сохраните их в текущей директории с именем 'abalone.data'. Считайте данные в table.

tbl = readtable('abalone.data','Filetype','text','ReadVariableNames',false);
rng default  % for reproducibility

В выборочные данные содержится 4177 наблюдений. Все переменные предиктора непрерывны, за исключением sex, которая является категориальной переменной с возможными значениями 'M' (для мужчин), 'F' (для женщин), и 'I' (для младенцев). Цель состоит в том, чтобы предсказать количество звонков на абалоне, и тем самым определить ее возраст, используя физические измерения.

Обучите регрессионую модель SVM с помощью функции Гауссова ядра и автоматической шкалы ядра. Стандартизируйте данные.

mdl = fitrsvm(tbl,'Var9','KernelFunction','gaussian','KernelScale','auto','Standardize',true)
mdl = 

  RegressionSVM
           PredictorNames: {1x8 cell}
             ResponseName: 'Var9'
    CategoricalPredictors: 1
        ResponseTransform: 'none'
                    Alpha: [3635x1 double]
                     Bias: 10.8144
         KernelParameters: [1x1 struct]
                       Mu: [1x10 double]
                    Sigma: [1x10 double]
          NumObservations: 4177
           BoxConstraints: [4177x1 double]
          ConvergenceInfo: [1x1 struct]
          IsSupportVector: [4177x1 logical]
                   Solver: 'SMO'


  Properties, Methods

Компактность модели.

compactMdl = compact(mdl)
compactMdl = 

  classreg.learning.regr.CompactRegressionSVM
           PredictorNames: {1x8 cell}
             ResponseName: 'Var9'
    CategoricalPredictors: 1
        ResponseTransform: 'none'
                    Alpha: [3635x1 double]
                     Bias: 10.8144
         KernelParameters: [1x1 struct]
                       Mu: [1x10 double]
                    Sigma: [1x10 double]
           SupportVectors: [3635x10 double]


  Properties, Methods

Уплотненная модель отбрасывает обучающие данные и некоторую информацию, связанную с процессом обучения.

Сравните размер полной модели mdl и компактную модель compactMdl.

vars = whos('compactMdl','mdl');
[vars(1).bytes,vars(2).bytes]
ans =

      323793      775968

Уплотненная модель потребляет около половины памяти полной модели.

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

Загрузите carsmall выборочные данные.

load carsmall
rng default  % for reproducibility

Обучите линейную регрессионую модель SVM с помощью Weight как переменная предиктора и MPG как переменная отклика. Стандартизируйте данные.

mdl = fitrsvm(Weight,MPG,'Standardize',true);

Обратите внимание, что MPG содержит несколько NaN значения. При обучении модели fitrsvm удаляет строки, содержащие NaN значения как от предиктора, так и от данных отклика. В результате обученная модель использует только 94 из 100 общих наблюдений, содержащихся в выборочных данных.

Сжать регрессионую модель, чтобы отбросить обучающие данные и некоторую информацию, связанную с процессом обучения.

compactMdl = compact(mdl);

compactMdl является CompactRegressionSVM модель, которая имеет те же параметры, поддержку векторы и связанные с ними оценки, как mdl, но больше не сохраняет обучающие данные.

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

mdlOut = discardSupportVectors(compactMdl);

mdlOut является CompactRegressionSVM модель, которая имеет те же параметры, что и mdl и compactMdl, но больше не хранит векторы поддержки и связанные оценки.

Сравните размеры трех регрессионых моделей SVM, compactMdl, mdl, и mdlOut.

vars = whos('compactMdl','mdl','mdlOut');
[vars(1).bytes,vars(2).bytes,vars(3).bytes]
ans =

        3601       13727        2305

Уплотненная модель compactMdl потребляет 3601 байт памяти, в то время как полная модель mdl потребляет 13727 байт памяти. Модель mdlOut, который также отбрасывает векторы поддержки, потребляет 2305 байт памяти.

Ссылки

[1] Нэш, У. Дж., Т. Л. Селлерс, С. Р. Тальбот, А. Дж. Коуторн и У. Б. Форд. "Популяционная биология Абалоне (виды Haliotis) в Тасмании. I. Blacklip Abalone (H. rubra) с Северного побережья и островов пролива Басс ". Деление морского рыболовства, технический доклад № 48, 1994 год.

[2] Waugh, S. «Extending and Benchmarking Cascade-Correlation: Extensions to the Cascade-Correlation Architecture and Benchmarking of Feed-Forward Supervied Neural Networds». Тасманийский университет, кафедра компьютерных наук, 1995 год.

[3] Кларк, Д., З. Шретер, А. Адамс. «A Quantitative Comparison of Dystal and Backpropagation». представлено на Австралийской конференции по нейронным сетям, 1996.

[4] Лихман, M. UCI Machine Learning Repository, [http://archive.ics.uci.edu/ml]. Ирвин, Калифорнийский университет, Школа информации и компьютерных наук.

Введенный в R2015b