最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
サポート ベクター マシン回帰モデルの近似
fitrsvm
は、低~中次元の予測子データセットに対してサポート ベクター マシン (SVM) 回帰モデルに学習をさせるか、SVM 回帰モデルの交差検証を行います。fitrsvm
は、カーネル関数を使用する予測子データのマッピングをサポートし、目的関数最小化のための二次計画法による SMO、ISDA または L1 ソフト マージン最小化をサポートします。
高次元データセット、つまり多数の予測子変数が含まれているデータセットに対して線形 SVM 回帰モデルに学習をさせるには、代わりに fitrlinear
を使用します。
バイナリ分類用の SVM モデルに学習をさせる方法については、低~中次元の予測子データセットの場合は fitcsvm
、高次元データセットの場合は fitclinear
を参照してください。
は、テーブル Mdl
= fitrsvm(Tbl
,ResponseVarName
)Tbl
に含まれている予測子の値と Tbl.ResponseVarName
に含まれている応答値を使用して学習させた、完全な学習済みサポート ベクター マシン (SVM) 回帰モデル Mdl
を返します。
は、1 つ以上の名前と値のペアの引数で指定された追加オプションと前の構文のいずれかを使用して SVM 回帰モデルを返します。たとえば、カーネル関数を指定したり、交差検証済みモデルを学習させることができます。Mdl
= fitrsvm(___,Name,Value
)
fitrsvm
は、低~中次元のデータセットをサポートします。高次元データセットの場合は、代わりに fitrlinear
を使用してください。
データセットが大規模でない限り、常に予測子を標準化してください (Standardize
を参照してください)。標準化を行うと、予測子を測定するスケールの影響を受けなくなります。
名前と値のペアの引数 KFold
を使用して交差検証を行うことをお勧めします。交差検証の結果により、SVM モデルがどの程度一般化を行うかを判断します。
SVM モデルでは、サポート ベクターの密度が低い方が望ましい状態です。サポート ベクターの数を少なくするには、名前と値のペアの引数 BoxConstraint
を大きい値に設定します。このようにすると、学習時間も長くなります。
学習時間を最適にするには、使用しているコンピューターで許容されるメモリの制限に近い値まで CacheSize
を大きくします。
サポート ベクターの個数が学習セット内の観測値数よりはるかに少ないと考えられる場合、名前と値のペアの引数 'ShrinkagePeriod'
を使用してアクティブ セットを縮小すると、収束を大幅に高速化することができます。'ShrinkagePeriod',1000
の使用をお勧めします。
回帰直線から離れている重複する観測値は、収束に影響を与えません。しかし、重複する観測値が回帰直線の近くに少しでもあると、収束が大幅に遅くなる可能性があります。収束を高速化するには、次の場合に 'RemoveDuplicates',true
を指定します。
多数の重複する観測値がデータセットに含まれている。
少数の重複する観測値が回帰直線の近くにあると考えられる。
ただし、学習時に元のデータセットを維持するため、fitrsvm
は複数のデータセット、つまり元のデータセットと重複する観測値を除外したデータセットを一時的に格納しなければなりません。このため、重複がほとんど含まれていないデータセットの場合に true
を指定すると、fitrsvm
は元のデータの場合の 2 倍に近いメモリを消費します。
モデルに学習をさせた後で、新しいデータについて応答を予測する C/C++ コードを生成できます。C/C++ コードの生成には MATLAB Coder™ が必要です。詳細については、コード生成の紹介を参照してください。
線形および非線形 SVM 回帰問題の数学的定式化およびソルバーのアルゴリズムについては、サポート ベクター マシン回帰についてを参照してください。
NaN
、<undefined>
、空の文字ベクトル (''
)、空の string (""
)、および <missing>
値は、欠損データ値を示します。fitrsvm
は、欠損応答に対応するデータ行全体を削除します。fitrsvm
は、重みを正規化するときに、欠損している予測子が 1 つ以上ある観測値に対応する重みを無視します。したがって、観測値のボックス制約が BoxConstraint
に等しくならない可能性があります。
fitrsvm
は、重みがゼロの観測値を削除します。
'Standardize',true
と 'Weights'
を設定した場合、fitrsvm
は対応する加重平均および加重標準偏差を使用して予測子を標準化します。つまり、fitrsvm
は以下を使用して予測子 j (xj) を標準化します。
xjk は、予測子 j (列) の観測値 k (行) です。
予測子データにカテゴリカル変数が含まれている場合、一般にこれらの変数について完全なダミー エンコードが使用されます。各カテゴリカル変数の各レベルについて、1 つずつダミー変数が作成されます。
PredictorNames
プロパティには、元の予測子変数名のそれぞれについて 1 つずつ要素が格納されます。たとえば、3 つの予測子があり、そのうちの 1 つは 3 つのレベルがあるカテゴリカル変数であるとします。この場合、PredictorNames
は元の予測子変数名が含まれている 1 行 3 列の文字ベクトルの cell 配列になります。
ExpandedPredictorNames
プロパティには、ダミー変数を含む予測子変数のそれぞれについて 1 つずつ要素が格納されます。たとえば、3 つの予測子があり、そのうちの 1 つは 3 つのレベルがあるカテゴリカル変数であるとします。この場合、ExpandedPredictorNames
は予測子変数および新しいダミー変数の名前が含まれている 1 行 5 列の文字ベクトルの cell 配列になります。
同様に、Beta
プロパティには、ダミー変数を含む各予測子について 1 つずつベータ係数が格納されます。
SupportVectors
プロパティには、ダミー変数を含むサポート ベクターの予測子の値が格納されます。たとえば、m 個のサポート ベクターと 3 つの予測子があり、そのうちの 1 つは 3 つのレベルがあるカテゴリカル変数であるとします。この場合、SupportVectors
は m 行 5 列の行列になります。
X
プロパティには、はじめに入力した状態で学習データが格納されます。ダミー変数は含まれません。入力がテーブルの場合、X
には予測子として使用した列のみが格納されます。
テーブルで予測子を指定した場合、いずれかの変数に順序付きのカテゴリが含まれていると、これらの変数について順序付きエンコードが使用されます。
k 個の順序付きレベルが変数に含まれている場合、k – 1 個のダミー変数が作成されます。j 番目のダミー変数は、j までのレベルについては -1、j + 1 から k までのレベルについては +1 になります。
ExpandedPredictorNames
プロパティに格納されるダミー変数の名前は 1 番目のレベルを示し、値は +1 になります。レベル 2, 3, ..., k の名前を含む k – 1 個の追加予測子名がダミー変数について格納されます。
どのソルバーも L1 ソフト マージン最小化を実装します。
学習データで想定される外れ値の比率を p
とします。'OutlierFraction',p
を設定した場合、"ロバスト学習" が実施されます。この方式では、最適化アルゴリズムが収束すると、観測値のうち 100p
% の削除が試行されます。削除された観測値は、勾配の大きいものに対応します。
[1] Clark, D., Z. Schreter, A. Adams. A Quantitative Comparison of Dystal and Backpropagation, submitted to the Australian Conference on Neural Networks, 1996.
[2] Fan, R.-E., P.-H. Chen, and C.-J. Lin. “Working set selection using second order information for training support vector machines.” Journal of Machine Learning Research, Vol 6, 2005, pp. 1889–1918.
[3] Kecman V., T. -M. Huang, and M. Vogt. “Iterative Single Data Algorithm for Training Kernel Machines from Huge Data Sets: Theory and Performance.” In Support Vector Machines: Theory and Applications. Edited by Lipo Wang, 255–274. Berlin: Springer-Verlag, 2005.
[4] Lichman, M. UCI Machine Learning Repository, [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science.
[5] 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.
[6] Waugh, S. Extending and benchmarking Cascade-Correlation, Ph.D. thesis, Computer Science Department, University of Tasmania, 1995.