ドキュメンテーション

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

cvshrink

縮小 (枝刈り) アンサンブルの交差検証

構文

vals = cvshrink(ens)
[vals,nlearn] = cvshrink(ens)
[vals,nlearn] = cvshrink(ens,Name,Value)

説明

vals = cvshrink(ens) は、平均二乗誤差の交差検証値をもつ LT 列の行列を返します。L は、構造体 ens.Regularizationlambda 値の数です。T は、弱学習器の重みに対する threshold 値の数です。ensregularize メソッドによって取得された Regularization プロパティがない場合は、lambda 名前と値のペアを渡します。

[vals,nlearn] = cvshrink(ens) は、交差検証を使用したアンサンブル学習器の平均数を表す LT 列の行列を返します。

[vals,nlearn] = cvshrink(ens,Name,Value) は、追加のオプションを使用して交差検証を行います。このオプションは Name,Value のペアの引数で指定されたものです。Name1,Value1,…,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

入力引数

ens

fitrensemble で作成されたアンサンブル回帰。

名前と値のペアの引数

オプションの Name,Value 引数のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

'cvpartition'

交差検証ツリーで使用するために、cvpartition によって作成された分割。一度に次の 4 つのオプションの 1 つだけを使用できます。'kfold''holdout''leaveout' または 'cvpartition'

'holdout'

ホールドアウト検定は、データの指定部分をテストし、データの残りの部分を学習に使用します。0 から 1 までの数値スカラーを指定します。交差検証ツリーの作成では、次の 4 つのオプション、'kfold''holdout''leaveout' または 'cvpartition'

'kfold'

交差検証ツリーで使用する分割の数、正の整数値。交差検証の方式を指定しない場合、cvshrink では 10 分割交差検証が使用されます。一度に次の 4 つのオプションの 1 つだけを使用できます。'kfold''holdout''leaveout' または 'cvpartition'

既定値: 10

'lambda'

LASSO に指定する非負の正則化パラメーター値のベクトル。空白の場合は、cvshrink は交差検証を実行しません。

既定値: []

'leaveout'

'on' に設定すると、Leave-one-out 法の交差検証を使用します。一度に次の 4 つのオプションの 1 つだけを使用できます。'kfold''holdout''leaveout' または 'cvpartition'

'threshold'

弱学習器の重みに設定される低いカットオフの数値ベクトル。cvshrink は、交差検証の計算で threshold より低い重みの学習器があると破棄します。

既定値: 0

出力引数

vals

平均二乗誤差の交差検証値をもつ LT 列の行列を返します。L は、正規化パラメーター 'lambda' の値の数、T は、弱学習器の重みに対する 'threshold' 値の数です。

nlearn

交差検証を使用したアンサンブルに存在する学習器の平均数の交差検証値をもつ LT 列の行列。L は、正規化パラメーター 'lambda' の値の数、T は、弱学習器の重みに対する 'threshold' 値の数です。

すべて展開する

carsmall データから燃費を予測するためのアンサンブル回帰を作成します。アンサンブルの交差検証を実行します。

carsmall データセットを読み込み、排気量、馬力および車両重量を予測子として選択します。

load carsmall
X = [Displacement Horsepower Weight];

バギングされた回帰木のアンサンブルに学習をさせることができます。

ens = fitrensemble(X,Y,'Method','Bag')

'Method''Bag' である場合、fircensemble は既定の木テンプレート オブジェクト templateTree() を弱学習器として使用します。この例では、再現性を得るため、木テンプレート オブジェクトを作成するときに 'Reproducible',true を指定し、このオブジェクトを弱学習器として使用します。

rng('default') % For reproducibility
t = templateTree('Reproducible',true); % For reproducibiliy of random predictor selections
ens = fitrensemble(X,MPG,'Method','Bag','Learners',t);

lambdathreshold の値を指定します。これらの値を使用してアンサンブルの交差検証を実行します。

[vals,nlearn] = cvshrink(ens,'lambda',[.01 .1 1],'threshold',[0 .01 .1])
vals = 3×3

   18.1135   18.4634  115.5087
   18.1140   18.4630  115.4477
   18.0823   18.3565  124.1655

nlearn = 3×3

   13.8000   11.5000    3.5000
   13.7000   11.4000    3.5000
   13.8000   11.3000    3.3000

しきい値に 0.1 を設定すると、許容できないほどの誤差を示していますが、0.01 の場合には、0 を設定したときと同程度の誤差であることがわかります。しきい値が 0.01 の場合は学習器の平均個数が約 11.4 ですが、しきい値が 0 の場合は約 13.8 になります。