Main Content

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 で作成されたアンサンブル回帰。

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。

R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

cvpartition

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

holdout

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

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.9150   19.0092  128.5935
   18.9099   18.9504  128.8449
   19.0328   18.9636  116.8500

nlearn = 3×3

   13.7000   11.6000    4.1000
   13.7000   11.7000    4.1000
   13.9000   11.6000    4.1000

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

拡張機能