ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

compact

クラス: RegressionSVM

コンパクトなサポート ベクター マシン回帰モデル

構文

compactMdl = compact(mdl)

説明

compactMdl = compact(mdl) は、コンパクトなサポート ベクター マシン (SVM) 回帰モデル compactMdl を返します。これは、完全な学習済み SVM 回帰モデル mdl の圧縮版です。

compactMdl には学習データが含まれませんが、mdl には、プロパティ mdl.X および mdl.Y に学習データが含まれています。

入力引数

すべて展開する

完全な学習済み SVM 回帰モデル。fitrsvm が返した RegressionSVM モデルとして指定します。

出力引数

すべて展開する

コンパクトな SVM 回帰モデル。CompactRegressionSVM モデルとして返されます。

mdl の場合とまったく同じ方法で compactMdl を使用して応答値を予測します。ただし、compactMdl には学習データが含まれないため、交差検証などの一部のタスクは実行できません。

すべて展開する

この例では、学習データと、学習プロセスに関連する一部の情報を破棄することにより、完全な学習済み SVM 回帰モデルのサイズを小さくする方法を示します。

この例では、UCI Machine Learning Repository にあるアワビのデータを使用します。データをダウンロードして、'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

Weight を予測子変数、MPG を応答変数として使用して、線形 SVM 回帰モデルを学習させます。データを標準化します。

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

MPG にはいくつかの NaN 値が含まれていることに注意してください。モデルを学習させるときに、fitrsvmNaN 値が含まれている行を予測子データと応答データの両方から削除します。この結果、標本データに含まれている 100 個の観測値のうち 94 個のみが学習済みモデルで使用されます。

回帰モデルを圧縮して、学習データと、学習プロセスに関連する一部の情報を破棄します。

compactMdl = compact(mdl);

compactMdl は、パラメーター、サポート ベクターおよび関連推定値が mdl と同じで、学習データが格納されていない CompactRegressionSVM モデルです。

圧縮したモデルのサポート ベクターおよび関連推定値を破棄します。

mdlOut = discardSupportVectors(compactMdl);

mdlOut は、パラメーターが mdl および compactMdl と同じで、サポート ベクターと関連推定値が格納されていない CompactRegressionSVM モデルです。

3 つの SVM 回帰モデル compactMdlmdl および 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] Nash, W.J., T. L. Sellers, S. R. Talbot, A. J. Cawthorn, and W. B. Ford. The Population Biology of Abalone (Haliotis species) in Tasmania. I. Blacklip Abalone (H. rubra) from the North Coast and Islands of Bass Strait, Sea Fisheries Division, Technical Report No. 48, 1994.

[2] Waugh, S. Extending and benchmarking Cascade-Correlation, Ph.D. thesis, Computer Science Department, University of Tasmania, 1995.

[3] Clark, D., Z. Schreter, A. Adams. A Quantitative Comparison of Dystal and Backpropagation, submitted to the Australian Conference on Neural Networks, 1996.

[4] Lichman, M. UCI Machine Learning Repository, [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science.

R2015b で導入