exponenta event banner

компактный

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

    Описание

    пример

    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), удалив обучающие данные. Полные классификаторы 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