compact

Уменьшите размер модели машинного обучения

    Синтаксис

    Описание

    пример

    CompactMdl = compact(Mdl) возвращает компактную модель (CompactMdl), компактная версия обученной модели машинного обучения Mdl.

    CompactMdl не содержит обучающих данных, в то время как Mdl содержит обучающие данные в своих X и Y свойства. Поэтому, хотя вы можете предсказать метки классов, используя CompactMdlвы не можете выполнять такие задачи, как перекрестная валидация с помощью компактной модели.

    Примеры

    свернуть все

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

    Загрузите ionosphere набор данных. Удалите первые два предиктора устойчивости.

    load ionosphere
    X = X(:,3:end);

    Обучите наивный классификатор Байеса с помощью предикторов X и метки классов Y. Рекомендуемая практика состоит в том, чтобы задать имена классов. fitcnb принимает, что каждый предиктор условно и нормально распределен.

    Mdl = fitcnb(X,Y,'ClassNames',{'b','g'})
    Mdl = 
      ClassificationNaiveBayes
                  ResponseName: 'Y'
         CategoricalPredictors: []
                    ClassNames: {'b'  'g'}
                ScoreTransform: 'none'
               NumObservations: 351
             DistributionNames: {1x32 cell}
        DistributionParameters: {2x32 cell}
    
    
      Properties, Methods
    
    

    Mdl является обученным ClassificationNaiveBayes классификатор.

    Уменьшите размер наивного классификатора Байеса.

    CMdl = compact(Mdl)
    CMdl = 
      CompactClassificationNaiveBayes
                  ResponseName: 'Y'
         CategoricalPredictors: []
                    ClassNames: {'b'  'g'}
                ScoreTransform: 'none'
             DistributionNames: {1x32 cell}
        DistributionParameters: {2x32 cell}
    
    
      Properties, Methods
    
    

    CMdl является обученным CompactClassificationNaiveBayes классификатор.

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

    whos('Mdl','CMdl')
      Name      Size             Bytes  Class                                                        Attributes
    
      CMdl      1x1              15060  classreg.learning.classif.CompactClassificationNaiveBayes              
      Mdl       1x1             111174  ClassificationNaiveBayes                                               
    

    Полный наивный классификатор Байеса (Mdl) более чем в семь раз больше компактного наивного классификатора Байеса (CMdl).

    Чтобы эффективно пометить новые наблюдения, можно удалить Mdl из рабочей области MATLAB ®, а затем передайте CMdl и новые значения предиктора, чтобы predict.

    Уменьшите размер классификатора полной машины опорных векторов (SVM) путем удаления обучающих данных. Классификаторы Full SVM (то есть ClassificationSVM классификаторы) хранят обучающие данные. Для повышения эффективности используйте меньший классификатор.

    Загрузите ionosphere набор данных.

    load ionosphere

    Обучите классификатор SVM. Стандартизируйте данные предиктора и задайте порядок классов.

    SVMModel = fitcsvm(X,Y,'Standardize',true,...
        'ClassNames',{'b','g'})
    SVMModel = 
      ClassificationSVM
                 ResponseName: 'Y'
        CategoricalPredictors: []
                   ClassNames: {'b'  'g'}
               ScoreTransform: 'none'
              NumObservations: 351
                        Alpha: [90x1 double]
                         Bias: -0.1343
             KernelParameters: [1x1 struct]
                           Mu: [1x34 double]
                        Sigma: [1x34 double]
               BoxConstraints: [351x1 double]
              ConvergenceInfo: [1x1 struct]
              IsSupportVector: [351x1 logical]
                       Solver: 'SMO'
    
    
      Properties, Methods
    
    

    SVMModel является ClassificationSVM классификатор.

    Уменьшите размер классификатора SVM.

    CompactSVMModel = compact(SVMModel)
    CompactSVMModel = 
      CompactClassificationSVM
                 ResponseName: 'Y'
        CategoricalPredictors: []
                   ClassNames: {'b'  'g'}
               ScoreTransform: 'none'
                        Alpha: [90x1 double]
                         Bias: -0.1343
             KernelParameters: [1x1 struct]
                           Mu: [1x34 double]
                        Sigma: [1x34 double]
               SupportVectors: [90x34 double]
          SupportVectorLabels: [90x1 double]
    
    
      Properties, Methods
    
    

    CompactSVMModel является CompactClassificationSVM классификатор.

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

    whos('SVMModel','CompactSVMModel')
      Name                 Size             Bytes  Class                                                 Attributes
    
      CompactSVMModel      1x1              31058  classreg.learning.classif.CompactClassificationSVM              
      SVMModel             1x1             141148  ClassificationSVM                                               
    

    Полный классификатор SVM (SVMModel) более чем в четыре раза больше компактного классификатора SVM (CompactSVMModel).

    Чтобы эффективно пометить новые наблюдения, можно удалить SVMModel из рабочей области MATLAB ®, а затем передайте CompactSVMModel и новые значения предиктора, чтобы predict.

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

    Уменьшите размер полной обобщенной аддитивной модели (GAM) для регрессии путем удаления обучающих данных. Полные модели содержат обучающие данные. Можно использовать компактную модель для повышения эффективности памяти.

    Загрузите carbig набор данных.

    load carbig

    Задайте Acceleration, Displacement, Horsepower, и Weight как переменные предиктора (X) и MPG как переменная отклика (Y).

    X = [Acceleration,Displacement,Horsepower,Weight];
    Y = MPG;

    Обучите GAM с помощью X и Y.

    Mdl = fitrgam(X,Y)
    Mdl = 
      RegressionGAM
                 ResponseName: 'Y'
        CategoricalPredictors: []
            ResponseTransform: 'none'
                    Intercept: 26.9442
              NumObservations: 398
    
    
      Properties, Methods
    
    

    Mdl является RegressionGAM объект модели.

    Уменьшите размер модели.

    CMdl = compact(Mdl)
    CMdl = 
      CompactRegressionGAM
                 ResponseName: 'Y'
        CategoricalPredictors: []
            ResponseTransform: 'none'
                    Intercept: 26.9442
    
    
      Properties, Methods
    
    

    CMdl является CompactRegressionGAM объект модели.

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

    whos('Mdl','CMdl')
      Name      Size             Bytes  Class                                          Attributes
    
      CMdl      1x1             578154  classreg.learning.regr.CompactRegressionGAM              
      Mdl       1x1             611947  RegressionGAM                                            
    

    Полная модель (Mdl) больше компактной модели (CMdl).

    Чтобы эффективно предсказать ответы на новые наблюдения, можно удалить Mdl из рабочей области MATLAB ®, а затем передайте CMdl и новые значения предиктора, чтобы predict.

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

    свернуть все

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

    Объект модели

    МодельОбъект модели полной регрессии
    Обобщенная аддитивная модельRegressionGAM
    Модель нейронной сетиRegressionNeuralNetwork

    Объект модели

    МодельОбъект модели полной классификации
    Обобщенная аддитивная модельClassificationGAM
    Наивная модель БайесаClassificationNaiveBayes
    Модель нейронной сетиClassificationNeuralNetwork
    Поддерживайте векторную машину для одноклассовой и двоичной классификацииClassificationSVM

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

    свернуть все

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

    Объект модели

    МодельПолная модель (Mdl)Компактная модель (CompactMdl)
    Обобщенная аддитивная модельRegressionGAMCompactRegressionGAM
    Модель нейронной сетиRegressionNeuralNetworkCompactRegressionNeuralNetwork

    Объект модели

    МодельПолная модель (Mdl)Компактная модель (CompactMdl)
    Обобщенная аддитивная модельClassificationGAMCompactClassificationGAM
    Наивная модель БайесаClassificationNaiveBayesCompactClassificationNaiveBayes
    Модель нейронной сетиClassificationNeuralNetworkCompactClassificationNeuralNetwork
    Поддерживайте векторную машину для одноклассовой и двоичной классификацииClassificationSVMCompactClassificationSVM

    Введенный в R2014a