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

fitrsvm

サポートベクターマシン回帰モデルの近似

説明

fitrsvmは,低~中次元の予測子データセットに対してサポートベクターマシン(SVM)回帰モデルに学習をさせるか,SVM回帰モデルの交差検証を行います。fitrsvmは,カーネル関数を使用する予測子データのマッピングをサポートし,目的関数最小化のための二次計画法によるSMO, ISDAまたはL1ソフトマージン最小化をサポートします。

高次元データセット,つまり多数の予测子変含まれているデータセット形形回帰モデルにに习させるには,代わり代わりfitrlinearを使用します。

バイナリ分類用のSVMモデルに学習をさせる方法については,低~中次元の予測子データセットの場合はfitcsvm.,高次元データセットのの合并はfitclinearを参照してください。

Mdl= fitrsvm (TBL.,ResponseVarNameは,テーブルTBL.に含まれている予測子の値と资源描述。ResponseVarNameに含まれている応答を使使して习ささた,完全な学正文済みベクター(svm)回帰モデルMdlを返します。

Mdl= fitrsvm (TBL.,公式は,テーブルTBL.内の予测子の値を使用して学习させた,完全なSVM回帰モデルを返します。公式は,Mdlのあてはめに使用する応答およびTBL.内の予測子変数サブセットの説明モデルです。

Mdl= fitrsvm (TBL.,Yは,テーブルTBL.内の予測子の値とベクトルY内の応答値を使用して学習させた,完全な学習済みSVM回帰モデルを返します。

Mdl= fitrsvm (X,Yは,行列X内の予測子の値とベクトルY内の応答値を使用して学習させた,完全な学習済みSVM回帰モデルを返します。

Mdl= fitrsvm (___,名称,值は1つ以上の名前と値のペアの引数で指定された追加オプションと前の構文のいずれかを使用してSVM回帰モデルを返します。たとえば,カーネル関数を指定したり,交差検証済みモデルを学習させることができます。

すべて折りたたむ

行列に格納されている標本データを使用してサポートベクターマシン(SVM)回帰モデルに学習をさせます。

carsmallデータセットを読み込みます。

负载carsmallrng'默认'%的再现性

予測子変数 (X)として马力重量を,応答応答数(Y)として英里/加仑を指定します。

X =(功率、重量);Y = MPG;

既定のsvm回帰回帰にモデル习をさせます。

Mdl = fitrsvm (X, Y)
Mdl = RegressionSVM ResponseName: 'Y' CategoricalPredictors: [] ResponseTransform: 'none' Alpha: [76x1 double] Bias: 43.1920 KernelParameters: [1x1 struct] NumObservations: 93 BoxConstraints: [93x1 struct] ConvergenceInfo: [1x1 struct] Is万博1manbetxSupportVector: [93x1 logical] Solver: 'SMO'属性,方法

Mdlは学習させたRegressionSVMモデルです。

モデルが収束したかチェックします。

Mdl.ConvergenceInfo.Converged
ans =逻辑0

0は,モデルが収束しなかったことを示します。

标准标准,モデルを再学习せせます。

MdlStd = fitrsvm (X, Y,“标准化”,真正的)
MdlStd = RegressionSVM ResponseName: 'Y' CategoricalPredictors: [] ResponseTransform: 'none' Alpha: [77x1 double] Bias: 22.9131 KernelParameters: [1x1 struct] Mu: [109.3441 2.9625e+03] Sigma: [45.3545 805.9668] numobservers: 93 BoxConstraints: [93x1 double] ConvergenceInfo: [1x1 struct] IsSup万博1manbetxportVector: [93x1 logical] Solver:SMO的属性,方法

モデルが収束したかチェックします。

MdlStd.ConvergenceInfo.Converged
ans =逻辑1

1は,モデルが収束したことを示します。

新しいモデルの再代入(標本内)平均二乗誤差を計算します。

LSTD = RERUBLOS(MDLSTD)
lStd = 17.0256

UCI机器学习库のアワビのデータを使用してサポートベクターマシン回帰モデルに学習をさせます。

データをダウンロードして,“abalone.csv”という名前で现处于のフォルダに保存ます。

URL =.“https://archive.ics.uci.edu/ml/machine-learning-databases/abalone/abalone.data”;websave (“abalone.csv”,URL);

データをテーブルに読み込みます。変数名を指定します。

varnames = {“性”“长度”'直径''高度''全_weight'...'shucked_weight'“Viscera_weight”“Shell_weight”'戒指'};台= readtable (“abalone.csv”,“文件类型”,“文本”,“ReadVariableNames”、假);Tbl.Properties.VariableNames = varnames;

4177年標本データには個の観測値が含まれています。を除くすべての予測子変数は連続です。この変数はカテゴリカル変数で、可能な値は“米”(雄)、“F”(雌)および“我”( -に格納されている)アワビの輪の数を予測し,年齢を決定することです。

自動カーネルスケールのガウスカーネル関数を使用してSVM回帰モデルを学習させます。データを標準化します。

rng默认的%的再现性mdl = fitrsvm(tbl,'戒指',“KernelFunction”,“高斯”,“KernelScale”,“汽车”,...“标准化”,真正的)
Mdl = RegressionSVM PredictorNames:{1×8细胞}ResponseName:“戒指”CategoricalPredictors: 1 ResponseTransform:‘没有’α:(3635×1双)偏见:10.8144 KernelParameters:[1×1 struct]μ:[1×10双]σ:[1×10双]NumObservations: 4177 BoxConstraints:[4177×1双]ConvergenceInfo:[1×1 struct] IsSupportVector:万博1manbetx[4177×1 logical]解算器:'SMO'

Mdlが学習済みのRegressionSVMモデルであることとプロパティのリストがコマンドウィンドウに表示されます。

ドット表記を使用して,Mdlのプロパティを表示します。たとえば,モデルが収束したかどうかや、何回の反復が完了したかを確認します。

conv = Mdl. convergenceinfo . converiter = Mdl. conv = Mdl. convergenceinfo . converiterNumIterations
Conv =逻辑1 iter = 2759

返された結果は,このモデルが2759回の反復後に収束したことを示しています。

carsmallデータセットを読み込みます。

负载carsmallrng'默认'%的再现性

予測子変数 (X)として马力重量を,応答応答数(Y)として英里/加仑を指定します。

X =[马力重量];Y = MPG;

5分割の交差検証を使用して2つのSVM回帰モデルを交差検証します。両方のモデルについて,予測子の標準化を指定します。一方のモデルでは既定の線形カーネルを,もう一方のモデルではガウスカーネルを使用して学習を行うように指定します。

MdlLin = fitrsvm (X, Y,“标准化”,真的,“KFold”5)
mdllin = classReg.Learning.Partition.regressionPartitionedSVM CrossValidateDere:'SVM'predictornames:{'x1'x2'} racatectename:'y'numobservations:94 kfold:5分区:[1x1 cvpartition] ranceateetransform:'无'属性,方法
MdlGau = fitrsvm (X, Y,“标准化”,真的,“KFold”5,“KernelFunction”,“高斯”
mdlgau = classReg.Learning.Partition.regressionPartitionedSvm CrossValidatedModel:{'X1'X2'} ResponseName:'y'numobservations:94 kfold:5分区:[1x1 cvpartition] OrkeTetransform:'无'属性,方法
MdlLin。训练有素的
ans =5 x1单元阵列{1 x1 classreg.learning.regr。compactregressionsvm.} {1x1 classreg.learning.regr.CompactRegressionSVM} {1x1 classreg.learning.regr.CompactRegressionSVM} {1x1 classreg.learning.regr.CompactRegressionSVM} {1x1 classreg.learning.regr.CompactRegressionSVM}

MdlLinMdlGauRegressionPartitionedSVM交差検証済みモデルです。各モデルの训练有素的プロパティは,compactregressionsvm.モデルによる5行1列の细胞配列です。セル内のモデルには,観測値の分割を4つ使用し,1つの分割は除外して学習を行った結果が格納されます。

モデルの汎化誤差を比較します。このケースでは、汎化誤差は標本外平均二乗誤差です。

mselin = kfoldloss(mdllin)
mseLin = 17.4417
mseGau = kfoldLoss (MdlGau)
mseGau = 16.7397

ガウスカーネルを使用するSVM回帰モデルの方が,線形カーネルを使用するモデルより性能が優れています。

データセット全体をfitrsvmに渡すことにより,予測に適しているモデルを作成し,より高性能のモデルをもたらした名前と値のペアの引数をすべて指定します。ただし,交差検証オプションは指定しません。

MdlGau = fitrsvm (X, Y,“标准化”,真的,“KernelFunction”,“高斯”);

一連の自動車のMPGを予測するため,自動車の馬力および重量の測定値が格納されているテーブルとMdl预测に渡します。

この例では,fitrsvmを使用して自動的にハイパーパラメーターを最適化する方法を示します。この例では,carsmallデータを使用します。

carsmallデータセットを読み込みます。

负载carsmall

予測子変数 (X)として马力重量を,応答応答数(Y)として英里/加仑を指定します。

X =[马力重量];Y = MPG;

自動的なハイパーパラメーター最適化を使用して,5分割交差検証損失を最小化するハイパーパラメーターを求めます。

再現性を得るために,乱数シードを設定し,“expected-improvement-plus”の獲得関数を使用します。

rng默认的Mdl = fitrsvm (X, Y,“OptimizeHyperparameters”,“汽车”,...'hyperparameteroptimizationoptions',struct(“AcquisitionFunctionName”,...“expected-improvement-plus”))
|====================================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | BoxConstrain - | KernelScale |ε| | |结果| | |运行时(观察)| t (estim) | | | ||====================================================================================================================| | 最好1 | | 6.1124 | 10.779 | 6.1124 | 6.1124 | 0.35664 | 0.043031 | 0.30396 | | 2 |最好| 2.9114 | 0.092593 | 2.9114 | 3.088 | 70.67 | 710.65 | 1.6369 | | 3 |接受| 4.1884 | 0.051436 | 2.9114 | 3.078 | 14.367 | 0.0059144 |442.64 | | 4 |接受| 4.159 | 0.048154 | 2.9114 | 3.0457 | 0.0030879 | 715.31 | 2.6045 | | 5 |的| 2.9044 | 0.19816 | 2.9044 | 2.9042 | 906.95 | 761.46 | 1.3274 | | 6 |的| 2.8666 | 0.50618 | 2.8666 | 2.8668 | 997.3 | 317.41 | 3.7696 | | | 7日接受| 4.1881 | 0.043931 | 2.8666 | 2.8669 | 759.56 | 987.74 | 15.074 | | |接受8 | 2.8992 |2.5317 | 2.8666 | 2.8669 | 819.07 | 152.11 | 1.5192 | | | 9日接受| 2.8916 | 0.16756 | 2.8666 | 2.8672 | 921.52 | 627.48 | 2.3029 | | 10 |接受| 2.9001 | 0.28733 | 2.8666 | 2.8676 | 382.91 | 343.04 | 1.5448 | | | 11日接受| 3.6573 | 10.023 | 2.8666 | 2.8784 | 945.1 | 8.885 | 3.9207 | | | 12日接受| 2.9381 | 0.1064 | 2.8666 | 2.871 | 935.49 |979.29 | 0.1384 | | | 13日接受| 2.9341 | 0.043784 | 2.8666 | 2.8719 | 1.992 | 999.49 | 0.21557 | | | 14日接受| 2.9227 | 0.062812 | 2.8666 | 2.8742 | 2.351 | 977.85 | 0.026124 | | | 15日接受| 2.9483 | 0.13059 | 2.8666 | 2.8751 | 826.92 | 713.57 | 0.0096305 | | | 16日接受| 2.9502 | 1.1689 | 2.8666 | 2.8813 | 345.64 | 129.6 | 0.027832 | | 17 |Accept | 2.9329 | 0.1059 | 2.8666 | 2.8799 | 836.96 | 970.73 | 0.034398 | | 18 | Accept | 2.9177 | 0.047944 | 2.8666 | 2.8771 | 0.10167 | 129.91 | 0.0092675 | | 19 | Accept | 2.95 | 2.513 | 2.8666 | 2.8749 | 199.85 | 68.93 | 0.0092982 | | 20 | Accept | 4.1964 | 0.06516 | 2.8666 | 2.8685 | 0.0012054 | 940.94 | 0.0097673 | |====================================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | BoxConstrain-| KernelScale | Epsilon | | | result | | runtime | (observed) | (estim.) | t | | | |====================================================================================================================| | 21 | Accept | 2.905 | 0.051353 | 2.8666 | 2.8675 | 5.9475 | 199.82 | 0.013585 | | 22 | Accept | 2.9329 | 0.10874 | 2.8666 | 2.8747 | 0.33221 | 21.509 | 0.0094248 | | 23 | Accept | 2.9017 | 0.076283 | 2.8666 | 2.8689 | 13.341 | 554.39 | 0.069216 | | 24 | Accept | 2.9067 | 0.067107 | 2.8666 | 2.8694 | 0.21467 | 73.415 | 0.028231 | | 25 | Accept | 2.9046 | 0.052452 | 2.8666 | 2.8731 | 0.68546 | 61.287 | 0.0099165 | | 26 | Accept | 2.9138 | 0.057869 | 2.8666 | 2.8676 | 0.0012185 | 8.8743 | 0.0093263 | | 27 | Accept | 2.9193 | 0.059383 | 2.8666 | 2.8731 | 0.0099434 | 30.484 | 0.0093546 | | 28 | Accept | 8.5384 | 10.335 | 2.8666 | 2.8683 | 992.36 | 1.4043 | 0.0093129 | | 29 | Accept | 3.2254 | 0.048242 | 2.8666 | 2.8682 | 0.0010092 | 16.917 | 7.3665 | | 30 | Accept | 4.1884 | 0.06625 | 2.8666 | 2.8683 | 983.95 | 42.654 | 287.19 | __________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 70.2663 seconds. Total objective function evaluation time: 39.8961 Best observed feasible point: BoxConstraint KernelScale Epsilon _____________ ___________ _______ 997.3 317.41 3.7696 Observed objective function value = 2.8666 Estimated objective function value = 2.8683 Function evaluation time = 0.50618 Best estimated feasible point (according to models): BoxConstraint KernelScale Epsilon _____________ ___________ _______ 997.3 317.41 3.7696 Estimated objective function value = 2.8683 Estimated function evaluation time = 0.4589
Mdl = RegressionSVM ResponseName:‘Y’CategoricalPredictors: [] ResponseTransform:‘没有’α:[35×1双)偏见:48.8155 KernelParameters:[1×1 struct] NumObservations: 93 HyperparameterOptimizationResults:[1×1 BayesianOptimization] BoxConstraints:[93×1双]ConvergenceInfo:[1×1 struct] IsSupportVector: 93×1逻辑解算器。万博1manbetxSMO的属性,方法

最適化では,boxconstraint.内塞尔およびεに対して探索を行いました。出力は,推定交差検证损失が最小になる回帰です。

入力数

すべて折りたたむ

モデルを学習させるために使用する標本データ。テーブルとして指定します。TBL.,TBL.にに次数用词列を1つ追加できます。文件字の细胞配列ではない细胞配列配列とと列とととと列とととませませませ。

TBL.に応答変数が含まれている場合にTBL.内の他の変数をすべて予測子として使用するには,ResponseVarNameを使用して応答変数を指定します。

TBL.に応答変数が含まれている場合にTBL.内の他の変数の一部のみを予測子として使用するには,公式を使用して式を指定します。

TBL.に応答変数が含まれていない場合は,Yをを用して応答応答指定します。TBL.の行数は,同じでなければなりません。

TBL.の行またはYの要素に1つ以上のが含まれている場合,モデルを学習させるときにfitrsvmはその行および要素を両方の引数から削除します。

予測子の名前をTBL.に表示される順序で指定するには,预测的人名前と値のペアの引数を使用します。

データ型:テーブル

応答変数の名前。TBL.内応答のし指定指定。

ResponseVarNameには字字ベクトルまたはスカラーなりませんませなりませんたとえばなりませんませませませませませませませませYTBL.资源描述。Yとして格納されている場合,“Y”を指定します。それ以外の場合,モデルを学習させるときに,TBL.の列はYを含めてすべて予測子として扱われます。

データ型:字符|字符串

予測子変数のサブセットおよび応答の説明モデル。“Y ~ X1 + X2 + X3”という形式の文字ベクトルまたは字符串スカラーを指定します。この式では,Yはは変数を,X1X2およびX3は予測子変数を表します。変数は,TBL.Tbl.Properties.VariableNames)に含まれている変数の名前でなければなりません。

モデルに学習をさせるための予測子としてTBL.内の変数のサブセットを指定するには,式を使用します。式を指定した場合,公式に现れないTBL.内内分数は使使ません。

データ型:字符|字符串

応答データ。n行1列の数値ベクトルを指定します。Yの长さとTBL.またはXの行数は,同じでなければなりません。

TBL.またはXの行,またはYの要素に1つ以上のが含まれている場合,モデルを学習させるときにfitrsvmはその行および要素を両方の引数から削除します。

応答変数名を指定するには,ResponseName名前と値のペアの引数を使用します。

データ型:|

支持向量机回帰モデルをあてはめる対象となる予測子データ。n行p列の数値行列を指定します。nは観測値の個数,pは予測子変数の個数です。

Yの长さとXの行数は等しくなければなりません。

Xの行またはYの要素に1つ以上のが含まれている場合,fitrsvmはその行および要素を両方の引数から削除します。

予測子の名前をXに表示される順序で指定するには,预测的人名前と値のペアの引数を使用します。

データ型:|

名前と値のペアの引数

オプションの名称,值引数のコンマ区切りペアを指定します。的名字は引数名で,价值は対応する値です。的名字は引用符で囲まなければなりません。name1,value1,...,namen,valuenのように,複数の名前と値のペアの引数を,任意の順番で指定できます。

例:“KernelFunction”、“高斯”、“标准化”,没错,‘CrossVal’,‘上’は,ガウスカーネルと標準化した学習データを使用して10分割の交差検証SVM回帰モデルを学習させます。

メモ

交差検証の名前と値のペアの引数を名前と値のペアの引数“OptimizeHyperparameters”と同時に使用することはできません。“OptimizeHyperparameters”の结合のの交差交差検证,名称と値のペアのの'hyperparameteroptimizationoptions'を使用することのみによって変更できます。

サポートベクターマシンのオプション

すべて折りたたむ

アルファ係数のボックス制約。“BoxConstraint”と正のスカラー値から構成されるコンマ区切りのペアとして指定します。

α係数の絶対値がboxconstraint.の値を超えることはできません。

カーネル関数が“高斯”または“rbf”のの合,boxconstraint.の既定値は差(Y) / 1.349です。差(Y)は,応答変数Yの四分位数間範囲です。他のすべてのカーネルの場合,boxconstraint.の既定値は1です。

例:BoxConstraint 10

データ型:|

グラム行列の計算に使用するカーネル関数。“KernelFunction”と次の表の値から構成されるコンマ区切りのペアとして指定します。

説明
“高斯”または“rbf” ガウスまたは放射基底関数(RBF)カーネル

G x j , x k 经验值 x j x k 2

“线性” 线形

G x j , x k x j x k

多项式的 多項式カーネル。“PolynomialOrder”,pを使用して多項式カーネルの順序(p)を指定します。

G x j , x k 1 + x j x k

たとえば,“KernelFunction”、“内核”を設定すると内核が設定されます。この内核は次の形式でなければなりません。

函数g =内核(U,V)
ここで,

  • Uは,M行P列列行。

  • Vはn行p列の行列です。

  • Gは,m行n列で構成される,UVの行のグラム行列です。

kernel.mは,MATLAB®パス上になければなりません。

カーネル関数には一般的な名前を使用しないようにしてください。たとえば,シグモイドカーネル関数には“乙状结肠”ではなく“mysigmoid”などの名前を使使。

例:“KernelFunction”、“高斯”

データ型:字符|字符串

カーネルスケールパラメーター。“KernelScale”と,“汽车”または正のスカラーで構成される,コンマ区切りのペアとして指定します。予測子行列Xのすべての要素が内塞尔その后,适切适切カーネルノルム适さ,グラム行,グラム列がされ。

  • “汽车”を指定した場合,ヒューリスティック手法を使用して適切なスケール係数が選択されます。このヒューリスティック手法では副標本抽出を使用するので、呼び出すたびに推定値が変化する可能性があります。このため、結果を再現するには、学習の前にrngを使用して乱数シードを設定します。

  • “KernelFunction”、“内核”のように内塞尔と独自のカーネル関数を指定すると,エラーが発生します。内核の内部でスケーリングを適用しなければなりません。

例:“KernelScale”、“汽车”

データ型:||字符|字符串

多項式カーネル関数の次数。“PolynomialOrder”〖〗

KernelFunction多项式的ではない場合に“PolynomialOrder”を设定すると,エラーがスローされ。

例:“PolynomialOrder”,2

データ型:|

カーネルオフセットパラメーター。“KernelOffset”と非負のスカラーで構成されるコンマ区切りのペアとして指定します。

KernelOffsetがグラム行列の各要素に追加されます。

既定値は以下のとおりです。

  • ソルバーがSMOの場合(つまり,“规划求解”、“SMO的はを設定した場合)0

  • ソルバーがISDAの場合(つまり,“规划求解”、“ISDA的はを設定した場合)0.1

例:“KernelOffset”,0

データ型:|

イプシロン不感応区間の幅の半分。‘ε’と非負のスカラー値から構成されるコンマ区切りのペアとして指定します。

εの既定値は,差(Y) / 13.49です。これは、応答変数Yの四分位数間範囲を使用した標準偏差の1/10の推定値です。差(Y)ががに等しい等しい合,ε0.1の既定値はになります。

例:‘ε’,0.3

データ型:|

予测子データを标准化するためのフラグ。“标准化”真正的1)または(0)から構成されるコンマ区切りのペアとして指定します。

“标准化”,真的を設定した場合,次のようになります。

  • 列の加重平均と標準偏差によって予測子データ(X)の各列がそれぞれセンタリングおよびスケーリングされます(重みを付けた標準化の詳細についてはアルゴリズムMAITHONE

  • モデルの学习ににはははたたたた子行程がされががさますが,モデルのXプロパティには標準化されていないデータが格納されます。

例:“标准化”,真的

データ型:逻辑

最適化ルーチン。“规划求解”と次の表の値から構成されるコンマ区切りのペアとして指定します。

説明
ISDA的 反復単一データアルゴリズム([30]参照)
“L1QP” quadprogを使用して二次計画法によるL1ソフトマージン最小化を実装します。このオプションには Optimization Toolbox™ ライセンスが必要です。詳細は、二次计画法の定义(优化工具箱)を参照してください。
SMO的 逐次最小最適化 ([17]参照)

既定値は以下のとおりです。

  • “OutlierFraction”を正の値に設定した場合はISDA的

  • それ以外の場合はSMO的

例:“规划求解”、“ISDA的

アルファ係数の初期推定値。“α”と数値ベクトルから構成されるコンマ区切りのペアとして指定します。αの长さはXの行数と等価でなければなりません。

  • αの各要素はXの観測値に対応します。

  • αを格納できません。

  • αを交差検証の名前と値のペアの引数(“CrossVal”'cvpartition'“坚持”“KFold”または“Leaveout”)のいずれかと同時に指定すると,エラーが返されます。

Yに欠損値が含まれている場合は,欠損値に対応するすべての行をYXおよびαから削除してください。つまり,次のように入力します。

idx = ~ isnan (Y);Y = Y (idx);X = X (idx:);α=α(idx);
そしてYXおよびαをそれぞれ応答値,予測子およびアルファの初期推定値として渡します。

既定の设定は0(大小(Y, 1))です。

例:“阿尔法”,0.1 *(大小(X, 1), 1)

データ型:|

キャッシュサイズ。'缓存'“最大”または正のスカラーで構成されるコンマ区切りのペアとして指定します。

CacheSize“最大”の場合,n行n列のグラム行列を保持できる十分なメモリが確保されます。

CacheSizeが正のスカラーのの合,モデルモデル学习用にCacheSizeメガバイトのメモリが確保されます。

例:“CacheSize”、“最大”

データ型:||字符|字符串

アルファ系数をクリップするためのフラグ。“ClipAlphas”真正的またはのいずれかから构成されるコンマ区切りのペアとして指定します。

観測値jのアルファ係数がαj,観測値jのボックス制約がCjであるとします(j = 1,…,n)。nは学習標本のサイズです。

説明
真正的 各反复でαjが0またはCjに近い場合,MATLABでαjがそれぞれ0またはCjに設定されます。
最適化時にMATLABでアルファ係数は変更されません。

MATLABでは,学習済みのSVMモデルオブジェクトのαプロパティに最終的なαの値が格納されます。

ClipAlphasは,SMOとISDAの収束に影響を与える可能性があります。

例:“ClipAlphas”,假的

データ型:逻辑

最適化診断メッセージ出力の反復回数。“NumPrint”と非负の整数で构成されるコンマ区切りのペアとして指定します。

“详细”,1NumPrint, NumPrintを指定すると,numprint回反復するたびにSMOとISDAからのすべての最適化診断メッセージがコマンドウィンドウに表示されます。

例:“NumPrint”,500年

データ型:|

学習データで想定される外れ値の比率。“OutlierFraction”と区間(0,1)の数値スカラーから構成されるコンマ区切りのペアとして指定します。fitrsvmは勾配が大きい観測値を削除するので,収束に達するまでに,OutlierFractionで指定された比率の観測値をfitrsvmが削除することが保証されます。この名前と値のペアは,“规划求解”ISDA的の場合のみ有効です。

例:“OutlierFraction”,0.1

データ型:|

学習データ内の重複する観測値を単一の観測値に置き換えるためのフラグ。“RemoveDuplicates”真正的またはから構成されるコンマ区切りのペアとして指定します。

删除真正的のの合,fitrsvmは学習データ内の重複する観測値を同じ値の単一の観測値に置き換えます。単一の観測値の重みは,削除された対応する重複の重みの合計に等しくなります(权重を参照)。

ヒント

多数の重複する観測値がデータセットに含まれている場合は,“RemoveDuplicates”,真的を指定すると収束時間が大幅に短くなる可能性があります。

データ型:逻辑

詳細レベル。'verbose'01または2から構成されるコンマ区切りのペアとして指定します。详细的の値は,コマンドウィンドウに表示され体としてMdl.ConvergenceInfo.Historyに保存される最适化情报の量を制御します。

次の表は,使用できる詳細レベルオプションの一覧です。

説明
0 収束情報の表示や保存は行われません。
1 診断メッセージが表示され,numprint回の反復ごとに収束基準が保存されます。ここで,numprintは名前と値のペアの引数“NumPrint”の値です。
2 診断メッセージが表示され,1回の反復ごとに収束基準が保存されます。

例:“详细”,1

データ型:|

他の回帰のオプション

すべて折りたたむ

カテゴリカル予測子のリスト。“CategoricalPredictors”と次の表のいずれかの値から構成されるコンマ区切りのペアとして指定します。

説明
正の整数のベクトル ベクトルのエントリは,カテゴリカル変数が含まれている予測子データ(XまたはTBL.)の列に対応するインデックス値です。
逻辑ベクトル 真正的というエントリは,予測子データ(XまたはTBL.
文字行列 行程の各行はは子数量の名前。名称は预测的人のエントリに一致しなくてはなりません。文字行列の各行が同じ長さになるように、名前を余分な空白で埋めてください。
文章ベクトルベクトル细胞配列配列弦配列 配列の各要素は予測子変数の名前です。名前は预测的人のエントリに一致しなくてはなりません。
“所有” すべての予測子がカテゴリカルです。

TBL.)内にあり,この表に論理値,カテゴリカル値,字符串配列,または文字ベクトルの细胞配列が格納されている場合,fitrsvmは変数がカテゴリカルであると見なします。予測子データが行列(X)である場合,fitrsvmはすべての予測子が連続的であると見なします。データが行列の場合にカテゴリカル予測子を確認するには,名前と値のペアの引数“CategoricalPredictors”を使用します。

例:“CategoricalPredictors”、“所有”

データ型:||逻辑|字符|字符串|细胞

予测子数量名。“PredictorNames”と一意な名前の字符串配列または一意な文字ベクトルの细胞配列から構成されるコンマ区切りのペアとして指定します。“PredictorNames”の機能は,学習データの提供方法によって決まります。

  • XYを指定した場合,“PredictorNames”を使用してXの名前で予測子変数を指定できます。

    • 预测的人内の名称の顺序は,Xのの列の顺序に致しなけれなければなりませつまり,predictornames {1}X (: 1)の名前,predictornames {2}X (:, 2)の名前であり,他も同様です。また,大小(X, 2)元素个数(PredictorNames)は等しくなければなりません。

    • 既定では预测的人{x1, x2,…}です。

  • TBL.ががられたた合,“PredictorNames”を使使して学习使する予测子数量を选択でき。つまりfitrsvm预测的人の予測子変数と応答変数のみを学習で使用します。

    • 预测的人Tbl.Properties.VariableNamesのサブセットでなければならず,応答変数の名前を含めることはできません。

    • 既定では,すべての予測子変数の名前が预测的人に格納されます。

    • “PredictorNames”公式のいずれか一方のみを使用して学習用の予測子を指定することをお勧めします。

例:PredictorNames,{‘SepalLength’,‘SepalWidth’,‘PetalLength’,‘PetalWidth}

データ型:字符串|细胞

応答数名。“ResponseName”と文字ベクトルまたは字符串スカラーから構成されるコンマ区切りのペアとして指定します。

  • Yを指定した場合,“ResponseName”を使用して応答変数の名前を指定できます。

  • ResponseVarNameまたは公式を指定した場合,“ResponseName”を使用することはできません。

例:“ResponseName”、“响应”

データ型:字符|字符串

応答の変換。“ResponseTransform”“没有”既定のの设定设定しますの设定“没有”です。これは@ (y) y,つまり変换なしを表します.matlab关键词关联数の结合は,关键词は使ます。关键词は,ベクトル(元元応答値)を受け入れて同じサイズベクトル(変换返さなければなりません。

例:myfunction = @(y)exp(y)を使用して,指数変換を入力ベクトルに適用する関数のハンドルを作成するとします。この場合,応答変換としてmyfunction ResponseTransform,を指定できます。

データ型:字符|字符串|function_handle

観測値の重み。“重量”と数値ベクトルから構成されるコンマ区切りのペアとして指定します。权重のサイズはXの行数と等しくなければなりません。fitrsvmは,合計が1になるように权重の値を正規化します。

データ型:|

交差検証オプション

すべて折りたたむ

交差検証フラグ。“CrossVal”と,“上”または'离开'で構成されるコンマ区切りのペアとして指定します。

“上”を指定した場合10分割の交差検証が実施されます。

この交差検証の設定をオーバーライドするには,名前と値のペアの引数CVPartition.坚持KFoldLeaveoutのいずれかを使用します。交差検証済みモデルを作成するために使用できる交差検証の名前と値のペアの引数は、一度に 1 つだけです。

または,crossvalメソッドを使用して後からモデルの交差検証を行うことができます。

例:“CrossVal”,“上”

交差検証分割。'cvpartition'と,cvpartitionで作成したcvpartition分割オブジェクトから構成されるコンマ区切りのペアとして指定します。分割オブジェクトは,交差検証のタイプと、学習セットおよび検証セットのインデックス付けを指定します。

交差検証済みモデルの作成に使用できる名前と値のペアの引数は,CVPartition.坚持KFoldLeaveoutの4つのうちのいずれかのみです。

例:本量利= cvpartition(500年,“KFold”,5)500年を使用して個の観測値に対する5分割交差検証について無作為な分割を作成するとします。この場合,“CVPartition”,本量利を使用して交差検证済みモデルを指定できます。

ホールドアウト検定に使用されるデータの比率。“坚持”〖(0,1)〗‘坚持’,pを指定したた合,以下の手顺が実行。

  1. p * 100%のデータを無作為に選択して検証データとして確保し,残りのデータを使用してモデルに学習をさせる。

  2. コンパクトな学習済みモデルを交差検証済みモデルの训练有素的プロパティに格納する。

交差検証済みモデルの作成に使用できる名前と値のペアの引数は,CVPartition.坚持KFoldLeaveoutの4つのうちのいずれかのみです。

例:'扑腾',0.1

データ型:|

交差検証済みモデルで使用する分割数。“KFold”と1より大きい正の整数から構成されるコンマ区切りのペアとして指定します。KFold, kを指定したた合,以下の手顺が実行。

  1. データデータを作用为にk个のセットに分享。

  2. 各セットについて,そのセットを検定データとして確保し,他のk- 1個のセットを使用してモデルに学習をさせる。

  3. k個のコンパクトな学習済みモデルを,交差検証済みモデルの训练有素的プロパティに含まれているk行1列の细胞ベクトルのセルに格納する。

交差検証済みモデルの作成に使用できる名前と値のペアの引数は,CVPartition.坚持KFoldLeaveoutの4つのうちのいずれかのみです。

例:“KFold”,5

データ型:|

分析法の交差検証のフラグ。“Leaveout”“上”または'离开'で構成されるコンマ区切りのペアとして指定します。“Leaveout”,“上”を指定した場合,n個の観測値(nはモデルのNumObservationsプロパティで指定される,欠损観测値を除外した観测値の个数)のそれぞれについて以下の手顺が実行されます。

  1. その観測値を検証データとして確保し,他のn - 1個の観測値を使用してモデルに学習をさせる。

  2. n個のコンパクトな学習済みモデルを,交差検証済みモデルの训练有素的プロパティに含まれているn行1列の细胞ベクトルのセルに格納する。

交差検証済みモデルの作成に使用できる名前と値のペアの引数は,CVPartition.坚持KFoldLeaveoutの4つのうちのいずれかのみです。

例:“Leaveout”,“上”

収束制御

すべて折りたたむ

SMOまたはISDAで取得したしののとととの违反値値のの勾配勾配の许容许容许容“DeltaGradientTolerance”と非負のスカラーから構成されるコンマ区切りのペアとして指定します。

例:“DeltaGradientTolerance”,1的军医

データ型:|

SMOまたはISDAにより取得された実行可能性ギャップの許容誤差。“GapTolerance”と非負のスカラーで構成されるコンマ区切りのペアとして指定します。

凝聚率0のの合,fitrsvmはこのパラメーターを收束のチェックに使用しません。

例:“GapTolerance”,1的军医

データ型:|

数値最適化反復の最大回数。“IterationLimit”と正の整数値で構成されるコンマ区切りのペアとして指定します。

最適化ルーチンが正常に収束したかどうかに関係なく,学習済みのモデルが返されます。Mdl。ConvergenceInfoに収束情報が格納されます。

例:'iterationlimit',1e8

データ型:|

カルーシュ・キューン・タッカー(马)違反の許容誤差。'kkttolerance'と非負のスカラー値から構成されるコンマ区切りのペアとして指定します。

この名前と値のペアは,“规划求解”SMO的またはISDA的の場合のみ適用されます。

KKTTolerance0のの合,fitrsvmはこのパラメーターを收束のチェックに使用しません。

例:“KKTTolerance”,1的军医

データ型:|

アクティブアクティブセットの缩缩缩のの反复反复.“ShrinkagePeriod”と非負の整数から構成されるコンマ区切りのペアとして指定します。

“ShrinkagePeriod”,0を设定すると,アクティブセットは缩小されません。

例:“ShrinkagePeriod”,1000年

データ型:|

ハイパーパラメーターの最適化

すべて折りたたむ

最適化するパラメーター。“OptimizeHyperparameters”と次のいずれかから構成されるコンマ区切りのペアとして指定します。

  • “没有”——最適化を行いません。

  • “汽车”- - - - - -{‘BoxConstraint’,‘KernelScale’,‘ε’}を使用します。

  • “所有”——すべての使用可能パラメーターを最適化します。

  • 实用可能名の弦のまたは细胞配列。

  • optimizableVariableオブジェクトオブジェクトベクトル。通讯は封闭率のの力です。

最適化では,パラメーターを変化させることにより,fitrsvmの交差検証損失(誤差)を最小化しようとします。交差検証のタイプおよびその他の最適化の側面を制御するには,名前と値のペアHyperparameterOptimizationOptionsを使用します。

メモ

“OptimizeHyperparameters”の値は,他の名前と値のペアの引数を使用して設定した値より優先されます。たとえば,“OptimizeHyperparameters”“汽车”に設定すると,“汽车”ののが适适れます。

fitrsvmでは,以下のパラメーターを使用できます。

  • boxconstraint.- - - - - -fitrsvmは,既定では範囲(1 e - 3, 1 e3)の対数スケールで,正の値を探索します。

  • 内塞尔- - - - - -fitrsvmは,既定では範囲(1 e - 3, 1 e3)の対数スケールで,正の値を探索します。

  • ε- - - - - -fitrsvmは,既定では範囲(1 e - 3, 1 e2) *差(Y) / 1.349の対数スケールで,正の値を探索します。

  • KernelFunction- - - - - -fitrsvmは,“高斯”“线性”および多项式的で探索します。

  • PolynomialOrder- - - - - -fitrsvmは,範囲(2、4)の整数値を探索します。

  • 标准化- - - - - -fitrsvmは,“真正的”“假”で探索します。

既定以外のパラメーターを設定するには,既定以外の値が含まれているoptimizableVariableたとえば,以下のににし。

负载carsmallparams = hyperparameters ('fitrsvm',[马力,重量],mpg);params(1).range = [1e-4,1e6];

OptimizeHyperparametersの値として参数个数を渡します。

既定では,コマンドラインに反復表示が表示され,最適化のハイパーパラメーターの個数に従ってプロットが表示されます。最適化とプロットにおける目的関数は,回帰の場合は日志(1 +交差検証損失),分類の場合は誤分類率です。反復表示を制御するには,名前と値のペアの引数'hyperparameteroptimizationoptions'详细的フィールドを設定します。プロットを制御するには,名前と値のペアの引数'hyperparameteroptimizationoptions'Showplots.フィールドを設定します。

たとえば,支持向量机回帰の最適化を参照してください。

例:“OptimizeHyperparameters”、“汽车”

最適化のオプション。'hyperparameteroptimizationoptions'と構造体から構成されるコンマ区切りのペアとして指定します。この引数を指定すると,名前と値のペアの引数OptimizeHyperparametersの効果が変化します。この繁体のフィールドは、すべてオプションです。

フィールド名 既定の設定
优化器
  • “bayesopt”——ベイズ最適化を使用。内部的にはbayesoptが呼び出されます。

  • “gridsearch”——次元ごとにNumGridDivisionsの値があるグリッド探索を使用。

  • “randomsearch”- - - - - -MaxObjectiveEvaluations個の点で無作為に探索。

“gridsearch”では,グリッドからの一様な非復元抽出により,無作為な順序で探索します。最適化後、sortrows (Mdl.HyperparameterOptimizationResults)コマンドを使用してグリッド順のテーブルを取得できます。

“bayesopt”
AcquisitionFunctionName

  • '预期 - 每秒改善'

  • “expected-improvement”

  • “expected-improvement-plus”

  • “expected-improvement-per-second”

  • “lower-confidence-bound”

  • '改善概率'

オブジェクト関数のランタイムによって最適化が異なるので,名前に每秒が含まれている獲得関数は,再現性がある結果を生成しません。名前に+が含まれている獲得関数は,領域を過剰利用している場合に動作を変更します。詳細は,獲得関数のタイプを参照してください。

'预期 - 每秒改善'
MaxObjectiveEvaluations 目的関数評価の最大的数。 “bayesopt”または“randomsearch”の場合は30.“gridsearch”の場合はグリッド全体
最大限度

制限時間。正の実数を指定します。制限時間の単位は,抽搐tocによって測定される秒です。最大限度は関数評価を中断させないため,実行時間が最大限度を超える可能性があります。

inf
NumGridDivisions “gridsearch”値は,各次元の値の,またはすべて次元に整されるが场ですですれるカテゴリカルの场です。。 10
Showplots. プロットを表示するかどうかを示す論理値。真正的の場合,最良の目的関数の値が反復回数に対してプロットされます。1つまたは2つの最適化パラメーターがあり,优化器“bayesopt”である場合,Showplots.はパラメーターに対する目的関数のモデルのプロットも行います。 真正的
SaveIntermediateResults 优化器“bayesopt”である場合に結果を保存するかどうかを示す論理値。真正的のの合,“BayesoptResults”という名前のワークスペース変数が反復ごとに上書きされます。この変数はBayesianOptimizationオブジェクトです。
详细的

コマンドラインへの表示。

  • 0——反復表示なし

  • 1——反復表示あり

  • 2——追加情報付きで反復表示あり

詳細については,bayesoptの名前と値のペアの引数详细的を参照してください。

1
UseParallel ベイズベイズ适化を并列するかどうかかを値する。并行计算工具箱™が必要です。详细详细について,并列ベイズ最适化を参照してください。
重新分区

反复ごとに交差検证を再分割するかどうかを示す论理値。の場合,オプティマイザーは単一の分割を最適化に使用します。

分割ノイズが考慮されるので,通常は真正的にすると最も確実な結果が得られます。ただし,真正的で良好な結果を得るには,2倍以上の関数評価が必要になります。

以下の3つのフィールド名は1つだけ使用できます。
CVPartition. cvpartitionによって作成されるcvpartitionオブジェクト。 交差検証フィールドが指定されていない場合“Kfold”,5
坚持 ホールドアウトの比率を表す範囲(0,1)のスカラー。
Kfold 1より大きい整数。

例:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)

データ型:繁体

出力引数

すべて折りたたむ

学習済みのSVM回帰モデル。RegressionSVMモデルまたはRegressionPartitionedSVM交差検証済みモデルとして返されます。

以下の名前と値のペアの引数のうちいずれかが設定されている場合,MdlRegressionPartitionedSVM交差検証済みモデルとなります。KFold坚持LeaveoutCrossValまたはCVPartition.。それ以外の場合,MdlRegressionSVMモデルです。

制限

fitrsvmは,低~中次元のデータセットをサポートします。高次元データセットの場合は,代わりにfitrlinearを使用してください。

ヒント

  • データセットが大規模でない限り,常に予測子を標準化してください(标准化ををしてくださいください。

  • 名前と値のペアの引数KFoldを使用して交差検証を行うことをお勧めします。交差検証の結果により,SVMモデルがどの程度一般化を行うかを判断します。

  • SVMモデルでは,サポートベクターの密度が低い方が望ましい状態です。サポートベクターの数を少なくするには,名前と値のペアの引数boxconstraint.を大きい値に設定します。このようにすると、学習時間も長くなります。

  • 学習時間を最適にするには,使用しているコンピューターで許容されるメモリの制限に近い値までCacheSizeを大きくします。

  • サポートベクターの個数が学習セット内の観測値数よりはるかに少ないと考えられる場合,名前と値のペアの引数“ShrinkagePeriod”を使用してアクティブセットを縮小すると,収束を大幅に高速化することができます。“ShrinkagePeriod”,1000年の使用をお勧めします。

  • 回帰直线から离れている重复する観测値は,收束に影响を与えません。しかし,重复する観测値が回帰直线の近くに少しでもあると,收束が大幅に遅くなる可能性があります。收束を高层化するに,次次结合に“RemoveDuplicates”,真的を指定します。

    • 多数の重複する観測値がデータセットに含まれている。

    • 少数の重複する観測値が回帰直線の近くにあると考えられる。

    ただし,学習時に元のデータセットを維持するため,fitrsvmは複数のデータセット,つまり元のデータセットと重複する観測値を除外したデータセットを一時的に格納しなければなりません。このため,重複がほとんど含まれていないデータセットの場合に真正的を指定すると,fitrsvmは元のデータの場合の2倍に近いメモリを消費します。

  • モデルに学習をさせた後で,新しいデータについて応答を予測するC / c++コードを生成できます。C / c++コードの生成にはMATLAB编码器™が必要です。詳細については,コード生成の绍介を参照してください。

アルゴリズム

  • 線形および非線形SVM回帰問題の数学的定式化およびソルバーのアルゴリズムについては,サポートベクターマシン回帰についてを参照してください。

  • <定义>,空の文字ベクトル(''),空の字符串(""),および<缺失>値は,欠损データ値を示し。fitrsvmは,欠損応答に対応するデータ行全体を削除します。fitrsvmは,重みを正規化するときに,欠損している予測子が1つ以上ある観測値に対応する重みを無視します。したがって,観測値のボックス制約がboxconstraint.に等しくならない可能性があります。

  • fitrsvmは,重みがゼロの観測値を削除します。

  • “标准化”,真的“重量”を設定した場合,fitrsvmは対応する加重平均および加重標準偏差を使用して予測子を標準化します。つまり,fitrsvmは以下を使用して予測子j (xj)を標準化します。

    x j x j μ j σ j

    • μ j 1 k w k k w k x j k

    • xjkは,予测子j(列)ののk(行)です。

    • σ j 2 v 1 v 1 2 v 2 k w k x j k μ j 2

    • v 1 j w j

    • v 2 j w j 2

  • 予測子データにカテゴリカル変数が含まれている場合,一般にこれらの変数について完全なダミーエンコードが使用されます。各カテゴリカル変数の各レベルについて,1つずつダミー変数が作成されます。

    • 预测的人プロパティには,元の予測子変数名のそれぞれについて1つずつ要素が格納されます。たとえば,3.つの予測子があり、そのうちの 1 つは 3 つのレベルがあるカテゴリカル変数であるとします。この場合、预测的人は元の予測子変数名が含まれている1行3列の文字ベクトルの细胞配列になります。

    • ExpandedPredictornames.プロパティには,ダミー変数を含む予測子変数のそれぞれについて1つずつ要素が格納されます。たとえば,3.つの予測子があり、そのうちの 1 つは 3 つのレベルがあるカテゴリカル変数であるとします。この場合、ExpandedPredictornames.は予測子変数および新しいダミー変数の名前が含まれている1行5列の文字ベクトルの细胞配列になります。

    • 同様に,βプロパティには,ダミー変数を含む各予測子について1つずつベータ係数が格納されます。

    • 万博1manbetxSupportVectorsプロパティには,ダミー変数を含むサポートベクターの予測子の値が格納されます。たとえば,m 個のサポート ベクターと 3 つの予測子があり、そのうちの 1 つは 3 つのレベルがあるカテゴリカル変数であるとします。この場合、万博1manbetxSupportVectorsはm行5列の行列になります。

    • Xプロパティには,はじめにに力し状态で习习がますささますれ。Xには予测子として使用した列のみが格纳されます。

  • テーブルで予測子を指定した場合,いずれかの変数に順序付きのカテゴリが含まれていると,これらの変数について順序付きエンコードが使用されます。

    • k個の順序付きレベルが変数に含まれている場合,k - 1个のダミー位数が作物さます.j番目のダミーダミー,jまでのレベルについては-1j + 1からkまでのレベルについては+1になります。

    • ExpandedPredictornames.プロパティに格納されるダミー変数の名前は1番目のレベルを示し,値は+1になります。レベル2、3、……kの名前を含むk - 1個の追加予測子名がダミー変数について格納されます。

  • どのソルバーもL1ソフトマージン最小化を実装します。

  • 学習データで想定される外れ値の比率をpとします。OutlierFraction, pを設定した場合,“ロバスト学習”この実施され。p%の削除が試行されます。削除された観測値は,勾配の大きいものに対応します。

参照

[1] Clark,D.,Z. Schreter,A. Adams。1996年提交澳大利亚神经网络大会的施施施育和深度的定量比较。

[2]球迷,R.-E。,林志信。陈,C.-J。林。使用二阶信息进行训练支持向量机的工作集选择万博1manbetx机器学习研究杂志,2005年第6卷,1889-1918页。

[3] Kecman V.,T. -M。黄,和M. Vogt。“来自巨大数据集训练内核机器的迭代单数据算法:理论与性能。”在支持万博1manbetx向量机中:理论和应用。由Lipo Wang编辑,255-274。柏林:Springer-Verlag,2005。

[4] Lichman, M. UCI机器学习知识库[http://archive.ics.uci.edu/ml]。加州欧文:加州大学信息与计算机科学学院。

纳什、w.j.、t.l.塞勒斯、s.r.塔尔博特、a.j.考索恩和w.b.福特。塔斯马尼亚州鲍鱼的种群生物学。一、巴斯海峡北部海岸和岛屿的黑唇鲍鱼,海洋渔业司,技术报告第48号,1994年。

Waugh, S. Cascade-Correlation的扩展和基准研究,博士论文,塔斯马尼亚大学计算机科学系,1995。

拡張機能

R2015bで導入