ドキュメンテーション

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

CompactRegressionSVM

パッケージ: classreg.learning.regr

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

説明

CompactRegressionSVM は、コンパクトなサポート ベクター マシン (SVM) 回帰モデルです。このモデルは、モデルを学習させるために使用したデータが含まれていないので、完全な学習済みのサポート ベクター マシン モデル (RegressionSVM モデル) よりもメモリ消費量が少なくなります。

コンパクトなモデルには学習データが格納されていないので、コンパクトなモデルを使用しても交差検証など一部のタスクを実行することはできません。しかし、新しい入力データを使用して応答を予測するためにコンパクトな SVM モデルを使用することはできます。

構築

compactMdl = compact(mdl) は、完全な学習済み SVM 回帰モデル mdl からコンパクトな SVM 回帰モデル compactMdl を返します。詳細については、compact を参照してください。

入力引数

すべて展開する

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

プロパティ

すべて展開する

双対問題の係数。数値ベクトルを指定します。Alpha には、m 個の要素を含めます。m は、学習済み SVM 回帰モデルのサポート ベクターの個数です。双対問題では、各サポート ベクターについて 2 つずつのラグランジュ乗数を導入します。Alpha の値は、サポート ベクターについて推定した 2 つのラグランジュ乗数の差です。詳細は、サポート ベクター マシン回帰についてを参照してください。

RemoveDuplicates を使用して重複の削除を指定した場合、サポート ベクターである重複する観測値の特定の集合に対して、集合全体に対応する 1 つの係数が Alpha に格納されます。つまり、MATLAB® は、ある非ゼロ係数を重複集合内の 1 つの観測値によるものとし、係数 0 は集合内の他のすべての重複観測値によるものとします。

データ型: single | double

主線形問題の係数。長さが p の数値ベクトルとして格納されます。p は、SVM 回帰モデルにおける予測子の数です。

Beta の値は、最適化の主問題の線形係数です。

'linear' 以外のカーネル関数を使用してモデルを取得した場合、このプロパティは空 ('[]') になります。

predict メソッドでは、YFIT = (X/S)×Beta + Bias によりモデルの予測応答値を計算します。S は、KernelParameters.Scale プロパティに格納されているカーネル スケールの値です。

データ型: double

SVM 回帰モデルのバイアス項。スカラー値として格納されます。

データ型: double

カテゴリカル予測子のインデックス。正の整数のベクトルを指定します。CategoricalPredictors には、カテゴリカル予測子が含まれている予測子データの列に対応するインデックス値を格納します。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]) になります。

データ型: single | double

展開された予測子名。文字ベクトルの cell 配列として格納されます。

モデルがカテゴリカル変数用のエンコーディングを使用している場合、ExpandedPredictorNames には展開された変数を表す名前が格納されます。それ以外の場合、ExpandedPredictorNamesPredictorNames と同じです。

データ型: cell

カーネル関数のパラメーター。次のフィールドをもつ構造体として格納されます。

フィールド説明
Function カーネル関数名 (文字ベクトル)。
Scale予測子の値の除算に使用する数値スケール係数。

KernelParameters.Function および KernelParameters.Scale の値は、それぞれ fitrsvmKernelFunction および KernelScale の名前と値のペアの引数を使用して指定できます。

データ型: 構造体

予測子の平均。数値ベクトルとして格納されます。

学習データが標準化されている場合、Mu は長さが p の数値ベクトルになります。p は、モデルを学習させるために使用した予測子の数です。この場合、predict メソッドでは、Mu の対応する要素を各列から減算することにより、予測子の行列 X をセンタリングします。

学習データが標準化されていない場合、Mu は空 ('[]') になります。

データ型: single | double

予測子名。X に現れる順序で各予測子の名前が含まれている文字ベクトルの cell 配列として格納されます。PredictorNames の長さは、X の列数と等しくなります。

データ型: cell

応答変数名。文字ベクトルとして格納されます。

データ型: char

応答変換関数。'none' または関数ハンドルを指定します。ResponseTransform は、生の応答値を変換する方法を表します。

MATLAB 関数やユーザー定義関数の場合は、関数ハンドルを入力します。たとえば、Mdl.ResponseTransform = @function を入力できます。ここで function は、元の応答の数値ベクトルを受け入れ、変換した応答が格納されている同じサイズの数値ベクトルを返します。

データ型: char | 関数ハンドル

予測子の標準偏差。数値ベクトルとして格納されます。

学習データが標準化されている場合、Sigma は長さが p の数値ベクトルになります。p は、モデルを学習させるために使用した予測子の数です。この場合、predict メソッドでは、Mu を使用して各要素をセンタリングした後で、Sigma の対応する要素で各列を除算することにより、予測子行列 X をスケーリングします。

学習データが標準化されていない場合、Sigma は空 ('[]') になります。

データ型: single | double

サポート ベクター。m 行 p 列の数値行列として格納されます。m はサポート ベクターの個数 (sum(Mdl.IsSupportVector))、p は X 内の予測子の個数です。

RemoveDuplicates を使用して重複の削除を指定した場合、サポート ベクターである重複する観測値の特定の集合に対して、1 つの一意なサポート ベクターが SupportVectors に格納されます。

データ型: single | double

メソッド

discardSupportVectorsサポート ベクターの破棄
lossサポート ベクター マシン回帰モデルの回帰誤差
predictサポート ベクター マシン回帰モデルの使用による応答の予測

コピーのセマンティクス

値。値のクラスがコピー操作に与える影響については、オブジェクトのコピー (MATLAB)を参照してください。

すべて折りたたむ

この例では、学習データと、学習プロセスに関連する一部の情報を破棄することにより、完全な学習済み 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

圧縮されたモデルのメモリ消費量は、フル モデルの約半分です。

参照

[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 で導入