メインコンテンツ

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: {1×32 cell}
        DistributionParameters: {2×32 cell}
    
    
      Properties, Methods
    
    

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

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

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

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

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

    whos('Mdl','CMdl')
      Name      Size             Bytes  Class                                                        Attributes
    
      CMdl      1x1              16436  classreg.learning.classif.CompactClassificationNaiveBayes              
      Mdl       1x1             112598  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: [90×1 double]
                         Bias: -0.1342
             KernelParameters: [1×1 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 … ] (1×34 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 … ] (1×34 double)
               BoxConstraints: [351×1 double]
              ConvergenceInfo: [1×1 struct]
              IsSupportVector: [351×1 logical]
                       Solver: 'SMO'
    
    
      Properties, Methods
    
    

    SVMModelClassificationSVM 分類器です。

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

    CompactSVMModel = compact(SVMModel)
    CompactSVMModel = 
      CompactClassificationSVM
                 ResponseName: 'Y'
        CategoricalPredictors: []
                   ClassNames: {'b'  'g'}
               ScoreTransform: 'none'
                        Alpha: [90×1 double]
                         Bias: -0.1342
             KernelParameters: [1×1 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 … ] (1×34 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 … ] (1×34 double)
               SupportVectors: [90×34 double]
          SupportVectorLabels: [90×1 double]
    
    
      Properties, Methods
    
    

    CompactSVMModelCompactClassificationSVM 分類器です。

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

    whos('SVMModel','CompactSVMModel')
      Name                 Size             Bytes  Class                                                 Attributes
    
      CompactSVMModel      1x1              30749  classreg.learning.classif.CompactClassificationSVM              
      SVMModel             1x1             140279  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
    
    
      Properties, Methods
    
    

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

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

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

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

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

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

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

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

    学習データを削除することにより、完全な分位点線形回帰モデルのサイズを縮小します。完全な分位点回帰モデルには学習データが含まれています。コンパクトな分位点回帰モデルを使用すると、メモリ効率を向上させることができます。

    carbig データ セットを読み込みます。このデータ セットには、1970 年代と 1980 年代初期に製造された自動車の測定値が格納されています。予測子変数 AccelerationDisplacementHorsepower、および Weight を格納する行列 X を作成します。応答変数 MPG を変数 Y に保存します。

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

    X および Y からいずれかの配列に欠損値がある行を削除します。

    R = rmmissing([X Y]);
    X = R(:,1:end-1);
    Y = R(:,end);

    分位点線形回帰モデルに学習させます。0.250.500.75 の分位数 (つまり、第 1 四分位数、中央値、第 3 四分位数) を使用するように指定します。モデルの当てはめを改善するために、ベータ許容誤差を既定値の 1e-4 ではなく 1e-6 に変更し、リッジ (L2) 正則化項 1 を使用します。

    Mdl = fitrqlinear(X,Y,Quantiles=[0.25,0.50,0.75], ...
        BetaTolerance=1e-6,Lambda=1)
    Mdl = 
      RegressionQuantileLinear
                 ResponseName: 'Y'
        CategoricalPredictors: []
            ResponseTransform: 'none'
                         Beta: [4×3 double]
                         Bias: [17.0306 22.5291 29.0044]
                    Quantiles: [0.2500 0.5000 0.7500]
    
    
      Properties, Methods
    
    

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

    分位点回帰モデルのサイズを縮小します。

    CompactMdl = compact(Mdl)
    CompactMdl = 
      CompactRegressionQuantileLinear
                 ResponseName: 'Y'
        CategoricalPredictors: []
            ResponseTransform: 'none'
                         Beta: [4×3 double]
                         Bias: [17.0306 22.5291 29.0044]
                    Quantiles: [0.2500 0.5000 0.7500]
    
    
      Properties, Methods
    
    

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

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

    whos("Mdl","CompactMdl")
      Name            Size            Bytes  Class                                                     Attributes
    
      CompactMdl      1x1              4936  classreg.learning.regr.CompactRegressionQuantileLinear              
      Mdl             1x1             26426  RegressionQuantileLinear                                            
    

    完全な分位点線形回帰モデル (Mdl) はコンパクトな分位点線形回帰モデル (CompactMdl) よりも 5 倍以上大きくなっています。

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

    入力引数

    すべて折りたたむ

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

    分類モデル オブジェクト

    モデル完全な分類モデル オブジェクト
    判別分析分類器ClassificationDiscriminant
    サポート ベクター マシンまたはその他の分類器用のマルチクラス モデルClassificationECOC
    分類用のアンサンブル学習器ClassificationBaggedEnsemble, ClassificationEnsemble
    一般化加法モデルClassificationGAM
    単純ベイズ モデルClassificationNaiveBayes
    ニューラル ネットワーク分類器ClassificationNeuralNetwork
    1 クラスおよびバイナリ分類用のサポート ベクター マシンClassificationSVM
    マルチクラス分類用の二分決定木ClassificationTree

    回帰モデル オブジェクト

    モデル完全な回帰モデル オブジェクト
    回帰モデルのアンサンブルRegressionBaggedEnsemble, RegressionEnsemble
    一般化加法モデル (GAM)RegressionGAM
    ガウス過程回帰 (GPR) モデルRegressionGP
    ニューラル ネットワーク回帰モデルRegressionNeuralNetwork
    回帰用のサポート ベクター マシンRegressionSVM
    回帰木RegressionTree

    分位点回帰モデル オブジェクト

    モデル完全な分位点回帰モデル オブジェクト

    分位点線形回帰モデル (R2025a 以降)

    RegressionQuantileLinear

    回帰用の分位点ニューラル ネットワーク モデル (R2025a 以降)

    RegressionQuantileNeuralNetwork

    出力引数

    すべて折りたたむ

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

    分類モデル オブジェクト

    モデル完全なモデル (Mdl)コンパクトなモデル (CompactMdl)
    判別分析分類器ClassificationDiscriminantCompactClassificationDiscriminant
    サポート ベクター マシンまたはその他の分類器用のマルチクラス モデルClassificationECOCCompactClassificationECOC
    分類用のアンサンブル学習器ClassificationBaggedEnsemble, ClassificationEnsembleCompactClassificationEnsemble
    一般化加法モデルClassificationGAMCompactClassificationGAM
    単純ベイズ モデルClassificationNaiveBayesCompactClassificationNaiveBayes
    ニューラル ネットワーク分類器ClassificationNeuralNetworkCompactClassificationNeuralNetwork
    1 クラスおよびバイナリ分類用のサポート ベクター マシンClassificationSVMCompactClassificationSVM
    マルチクラス分類用の二分決定木ClassificationTreeCompactClassificationTree

    回帰モデル オブジェクト

    モデル完全なモデル (Mdl)コンパクトなモデル (CompactMdl)
    回帰モデルのアンサンブルRegressionBaggedEnsemble, RegressionEnsembleCompactRegressionEnsemble
    一般化加法モデルRegressionGAMCompactRegressionGAM
    ガウス過程回帰 (GPR) モデルRegressionGPCompactRegressionGP
    ニューラル ネットワーク回帰モデルRegressionNeuralNetworkCompactRegressionNeuralNetwork
    回帰用のサポート ベクター マシンRegressionSVMCompactRegressionSVM
    回帰木RegressionTreeCompactRegressionTree

    分位点回帰モデル オブジェクト

    モデル完全なモデル (Mdl)コンパクトなモデル (CompactMdl)

    分位点線形回帰モデル (R2025a 以降)

    RegressionQuantileLinearCompactRegressionQuantileLinear

    回帰用の分位点ニューラル ネットワーク モデル (R2025a 以降)

    RegressionQuantileNeuralNetworkCompactRegressionQuantileNeuralNetwork

    拡張機能

    すべて展開する

    バージョン履歴

    R2011a で導入

    すべて展開する