Main Content

RegressionPartitionedSVM

名前空間: classreg.learning.partition
スーパークラス: RegressionPartitionedModel

交差検証済みのサポート ベクター マシン回帰モデル

説明

RegressionPartitionedSVM は、交差検証分割で学習させたサポート ベクター マシン (SVM) 回帰モデルのセットです。

構築

CVMdl = crossval(mdl) は、学習済み SVM 回帰モデル mdl から交差検証 (分割) 済みのサポート ベクター マシン回帰モデル CVMdl を返します。

CVMdl = crossval(mdl,Name,Value) は、1 つ以上の Name,Value ペア引数で指定された追加オプションを使用して、交差検証されたモデルを返します。Nameプロパティ名にすることもでき、その場合、Value は対応する値になります。Name は、一重引用符 ('') で閉じなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

入力引数

すべて展開する

完全な学習済み SVM 回帰モデル。fitrsvm によって返される RegressionSVM モデルとして指定します。

プロパティ

すべて展開する

この プロパティ は読み取り専用です。

カテゴリカル予測子のインデックス。正の整数のベクトルとして指定します。CategoricalPredictors には、対応する予測子がカテゴリカルであることを示すインデックス値が格納されます。インデックス値の範囲は 1 ~ p です。p はモデルの学習に使用した予測子の数です。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]) になります。

データ型: single | double

交差検証済みモデルの名前。文字ベクトルとして格納されます。

データ型: char

交差検証分割の数。正の整数値として格納されます。

データ型: single | double

交差検証のパラメーター。オブジェクトとして格納されます。

学習データに含まれている観測値の数。正の整数値として格納されます。

データ型: single | double

交差検証のデータ分割。cvpartition オブジェクトとして格納されます。

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

データ型: cell

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

データ型: char

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

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

データ型: char | function_handle

学習済みのコンパクトな回帰モデル。CompactRegressionSVM モデルの cell 配列として格納されます。

データ型: cell

モデルを学習させるために使用した観測値の重み。NumObservation 個の要素が含まれている数値ベクトルとして格納されます。fitrsvm は、学習に使用する重みを合計が 1 になるように正規化します。

データ型: single | double

モデルを学習させるために使用した予測子の値。行列に対してモデルを学習させた場合は数値の行列、テーブルに対してモデルを学習させた場合はテーブルとして格納されます。X のサイズは n 行 p 列になります。n は学習データの行数、p は予測子変数または列の数です。

データ型: single | double | table

モデルの交差検証に使用する観測応答。NumObservations 個の要素が格納されている数値ベクトルを指定します。

Y の各行は、X の対応する行の観測された分類を表します。

データ型: single | double

オブジェクト関数

gatherGPU からの Statistics and Machine Learning Toolbox オブジェクトのプロパティの収集
kfoldLoss交差検証された分割済みの回帰モデルの損失
kfoldPredict交差検証済み回帰モデル内の観測値に対する応答の予測
kfoldfun回帰での関数の交差検証

すべて折りたたむ

この例では、crossval を使用して交差検証済みの 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' (稚貝) です。目標は、物理的な測定値を使用してアワビの輪の数を予測し、年齢を決定することです。

カーネル スケールが 2.2 に等しいガウス カーネル関数を使用して SVM 回帰モデルを学習させます。データを標準化します。

mdl = fitrsvm(tbl,'Var9','KernelFunction','gaussian','KernelScale',2.2,'Standardize',true);

mdl は、学習済みの RegressionSVM 回帰モデルです。

10 分割の交差検証をモデルに対して実行します。

CVMdl = crossval(mdl)
CVMdl = 

  classreg.learning.partition.RegressionPartitionedSVM
      CrossValidatedModel: 'SVM'
           PredictorNames: {1x8 cell}
    CategoricalPredictors: 1
             ResponseName: 'Var9'
          NumObservations: 4177
                    KFold: 10
                Partition: [1x1 cvpartition]
        ResponseTransform: 'none'


  Properties, Methods

CVMdl は、RegressionPartitionedSVM 交差検証回帰モデルです。次の処理が実行されます。

1.データを同じサイズの 10 個のセットに無作為に分割します。

2.10 個のセットのうち 9 個で SVM 回帰モデルを学習させます。

3.ステップ 1 および 2 を k = 10 回繰り返します。毎回、1 個の分割が除外され、残りの 9 個について学習が行われます。

4.分割ごとに汎化統計値を結合します。

10 個の学習済みモデルのうち 1 番目を表示します。

FirstModel = CVMdl.Trained{1}
FirstModel = 

  classreg.learning.regr.CompactRegressionSVM
       PredictorNames: {1x8 cell}
         ResponseName: 'Var9'
    ResponseTransform: 'none'
                Alpha: [3553x1 double]
                 Bias: 11.0623
     KernelParameters: [1x1 struct]
                   Mu: [0 0 0 0.5242 0.4080 0.1393 0.8300 0.3599 0.1811 0.2392]
                Sigma: [1 1 1 0.1205 0.0995 0.0392 0.4907 0.2217 0.1103 0.1392]
       SupportVectors: [3553x10 double]


  Properties, Methods

FirstModel は、10 個の学習済み CompactRegressionSVM モデルのうち 1 番目のモデルです。

この例では、交差検証済みの 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' (稚貝) です。目標は、物理的な測定値を使用してアワビの輪の数を予測し、年齢を決定することです。

カーネル スケールが 2.2 に等しいガウス カーネル関数を使用して SVM 回帰モデルを学習させます。データを標準化します。

mdl = fitrsvm(tbl,'Var9','KernelFunction','gaussian','KernelScale',2.2,'Standardize',true);

mdl は、学習済みの RegressionSVM 回帰モデルです。

10% のホールドアウト標本を指定して、回帰モデルを交差検証します。

CVMdl = crossval(mdl,'Holdout',0.1)
CVMdl = 

  classreg.learning.partition.RegressionPartitionedSVM
      CrossValidatedModel: 'SVM'
           PredictorNames: {1x8 cell}
    CategoricalPredictors: 1
             ResponseName: 'Var9'
          NumObservations: 4177
                    KFold: 1
                Partition: [1x1 cvpartition]
        ResponseTransform: 'none'


  Properties, Methods

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

学習済みのコンパクトな SVM 回帰モデルを CVMdl から抽出して表示します。

CVMdl.Trained{1}
TrainedModel = 

  classreg.learning.regr.CompactRegressionSVM
       PredictorNames: {1x8 cell}
         ResponseName: 'Var9'
    ResponseTransform: 'none'
                Alpha: [3530x1 double]
                 Bias: 11.2646
     KernelParameters: [1x1 struct]
                   Mu: [0 0 0 0.5244 0.4080 0.1393 0.8282 0.3595 0.1805 0.2386]
                Sigma: [1 1 1 0.1198 0.0989 0.0388 0.4891 0.2218 0.1093 0.1390]
       SupportVectors: [3530x10 double]


  Properties, Methods

TrainedModel は、データの 90% を使用して学習させた CompactRegressionSVM 回帰モデルです。

代替方法

以下の手法を使用すると、RegressionPartitionedSVM モデルを作成できます。

  • 学習関数 fitrsvm を使用し、名前と値のペア 'CrossVal''Holdout''KFold' または 'Leaveout' のいずれかを指定します。

  • fitrsvm を使用してモデルに学習させ、crossval メソッドによってモデルを交差検証します。

  • cvpartition を使用して交差検証分割を作成してから、名前と値のペア 'CVPartition' を使用して学習を行うときに、生成された分割オブジェクトを fitrsvm に渡します。

参考文献

[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: Extensions to the Cascade-Correlation Architecture and Benchmarking of Feed-forward Supervised Artificial Neural Networks." University of Tasmania Department of Computer Science thesis, 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 で導入

すべて展開する