Main Content

compact

機械学習モデルのサイズの縮小

    説明

    CompactMdl = compact(Mdl) は、コンパクトなモデル (CompactMdl) を返します。これは学習済みの機械学習モデル Mdl のコンパクトなバージョンです。

    CompactMdl には学習データが含まれませんが、Mdl では X および Y プロパティに学習データが含まれています。したがって、CompactMdl を使用してクラス ラベルを予測することはできますが、コンパクトなモデルで交差検証などのタスクは実行できません。

    すべて折りたたむ

    学習データを削除することにより、完全な単純ベイズ分類器のサイズを縮小します。完全な単純ベイズ分類器は学習データを保持しています。コンパクトな単純ベイズ分類器を使用すると、メモリ効率を向上させることができます。

    ionosphere データ セットを読み込みます。安定させるため、最初の 2 つの予測子を削除します。

    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}
    
    
    

    Mdl は学習させた ClassificationNaiveBayes 分類器です。

    単純ベイズ分類器のサイズを縮小します。

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

    CMdl は学習させた CompactClassificationNaiveBayes 分類器です。

    各分類器が使用するメモリの量を表示します。

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

    完全な単純ベイズ分類器 (Mdl) はコンパクトな単純ベイズ分類器 (CMdl) よりも 7 倍以上サイズが大きくなります。

    新しい観測値のラベルを効率的に設定するため、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.1342
             KernelParameters: [1x1 struct]
                           Mu: [0.8917 0 0.6413 0.0444 0.6011 0.1159 0.5501 0.1194 0.5118 0.1813 0.4762 0.1550 0.4008 0.0934 0.3442 0.0711 0.3819 -0.0036 0.3594 -0.0240 0.3367 0.0083 0.3625 -0.0574 0.3961 -0.0712 0.5416 -0.0695 0.3784 ... ] (1x34 double)
                        Sigma: [0.3112 0 0.4977 0.4414 0.5199 0.4608 0.4927 0.5207 0.5071 0.4839 0.5635 0.4948 0.6222 0.4949 0.6528 0.4584 0.6180 0.4968 0.6263 0.5191 0.6098 0.5182 0.6038 0.5275 0.5785 0.5085 0.5162 0.5500 0.5759 0.5080 ... ] (1x34 double)
               BoxConstraints: [351x1 double]
              ConvergenceInfo: [1x1 struct]
              IsSupportVector: [351x1 logical]
                       Solver: 'SMO'
    
    
    

    SVMModelClassificationSVM 分類器です。

    SVM 分類器のサイズを縮小します。

    CompactSVMModel = compact(SVMModel)
    CompactSVMModel = 
      CompactClassificationSVM
                 ResponseName: 'Y'
        CategoricalPredictors: []
                   ClassNames: {'b'  'g'}
               ScoreTransform: 'none'
                        Alpha: [90x1 double]
                         Bias: -0.1342
             KernelParameters: [1x1 struct]
                           Mu: [0.8917 0 0.6413 0.0444 0.6011 0.1159 0.5501 0.1194 0.5118 0.1813 0.4762 0.1550 0.4008 0.0934 0.3442 0.0711 0.3819 -0.0036 0.3594 -0.0240 0.3367 0.0083 0.3625 -0.0574 0.3961 -0.0712 0.5416 -0.0695 0.3784 ... ] (1x34 double)
                        Sigma: [0.3112 0 0.4977 0.4414 0.5199 0.4608 0.4927 0.5207 0.5071 0.4839 0.5635 0.4948 0.6222 0.4949 0.6528 0.4584 0.6180 0.4968 0.6263 0.5191 0.6098 0.5182 0.6038 0.5275 0.5785 0.5085 0.5162 0.5500 0.5759 0.5080 ... ] (1x34 double)
               SupportVectors: [90x34 double]
          SupportVectorLabels: [90x1 double]
    
    
    

    CompactSVMModelCompactClassificationSVM 分類器です。

    各分類器が使用するメモリの量を表示します。

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

    完全な SVM 分類器 (SVMModel) はコンパクトな SVM 分類器 (CompactSVMModel) に対して 4 倍以上大きくなっています。

    新しい観測値のラベルを効率的に設定するため、SVMModel を MATLAB® ワークスペースから削除し、CompactSVMModel と新しい予測子の値を predict に渡すことができます。

    コンパクトな SVM 分類器のサイズをさらに小さくするには、関数discardSupportVectorsを使用してサポート ベクターを破棄します。

    学習データを削除することにより、回帰用の完全な一般化加法モデル (GAM) のサイズを縮小します。完全なモデルには、学習データが保持されます。コンパクトなモデルを使用すると、メモリ効率を向上させることができます。

    carbig データ セットを読み込みます。

    load carbig

    予測子変数 (X) として AccelerationDisplacementHorsepower および Weight を、応答変数 (Y) として MPG を指定します。

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

    XY を使用して GAM に学習させます。

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

    MdlRegressionGAM モデル オブジェクトです。

    モデルのサイズを縮小します。

    CMdl = compact(Mdl)
    CMdl = 
      CompactRegressionGAM
                  ResponseName: 'Y'
         CategoricalPredictors: []
             ResponseTransform: 'none'
                     Intercept: 26.9442
        IsStandardDeviationFit: 0
    
    
    

    CMdlCompactRegressionGAM モデル オブジェクトです。

    各回帰モデルが使用するメモリの量を表示します。

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

    完全なモデル (Mdl) は、コンパクトなモデル (CMdl) より大きくなります。

    新しい観測値の応答を効率的に予測するため、Mdl を MATLAB® ワークスペースから削除し、CMdl と新しい予測子の値を predict に渡すことができます。

    入力引数

    すべて折りたたむ

    機械学習モデル。完全な回帰または分類モデル オブジェクトとして指定します。サポートされるモデルは次の表に記載されています。

    回帰モデル オブジェクト

    モデル完全な回帰モデル オブジェクト
    ガウス過程回帰 (GPR) モデルRegressionGP
    一般化加法モデル (GAM)RegressionGAM
    ニューラル ネットワーク モデルRegressionNeuralNetwork

    分類モデル オブジェクト

    モデル完全な分類モデル オブジェクト
    一般化加法モデルClassificationGAM
    単純ベイズ モデルClassificationNaiveBayes
    ニューラル ネットワーク モデルClassificationNeuralNetwork
    1 クラスおよびバイナリ分類用のサポート ベクター マシンClassificationSVM

    出力引数

    すべて折りたたむ

    コンパクトな機械学習モデル。入力モデル Mdl に応じて、次の表のコンパクトなモデル オブジェクトのいずれかとして返されます。

    回帰モデル オブジェクト

    モデル完全なモデル (Mdl)コンパクトなモデル (CompactMdl)
    ガウス過程回帰 (GPR) モデルRegressionGPCompactRegressionGP
    一般化加法モデルRegressionGAMCompactRegressionGAM
    ニューラル ネットワーク モデルRegressionNeuralNetworkCompactRegressionNeuralNetwork

    分類モデル オブジェクト

    モデル完全なモデル (Mdl)コンパクトなモデル (CompactMdl)
    一般化加法モデルClassificationGAMCompactClassificationGAM
    単純ベイズ モデルClassificationNaiveBayesCompactClassificationNaiveBayes
    ニューラル ネットワーク モデルClassificationNeuralNetworkCompactClassificationNeuralNetwork
    1 クラスおよびバイナリ分類用のサポート ベクター マシンClassificationSVMCompactClassificationSVM

    拡張機能

    バージョン履歴

    R2014a で導入