このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
cvshrink
縮小 (枝刈り) アンサンブルの交差検証
説明
は、平均二乗誤差の交差検証値をもつ vals
= cvshrink(ens
)L
行 T
列の行列を返します。L
は、構造体 ens.Regularization
の Lambda
値の数です。T
は、弱学習器の重みに対する Threshold
値の数です。関数 regularize
で指定された値を格納する Regularization
プロパティが ens
にない場合は、名前と値の引数 Lambda
を設定します。
[___] = cvshrink(
では、1 つ以上の名前と値の引数を使用して追加オプションを指定します。たとえば、使用する分割数、ホールドアウト検証に使用するデータの比率、弱学習器の重みの低域カットオフを指定できます。ens
,Name=Value
)
入力引数
ens
— アンサンブル回帰モデル
RegressionEnsemble
モデル オブジェクト
アンサンブル回帰モデル。fitrensemble
で学習させた RegressionEnsemble
モデル オブジェクトとして指定します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: cvshrink(ens,Holdout=0.1,Threshold=[0 .01 .1])
は、データの 10% をホールドアウト検証用に確保し、1 番目、2 番目、3 番目の弱学習器に対する重みのカットオフをそれぞれ 0、0.01、1 と指定します。
CVPartition
— 交差検証分割
[]
(既定値) | cvpartition
オブジェクト
交差検証分割。交差検証のタイプと学習セットおよび検証セットのインデックス付けを指定する cvpartition
オブジェクトとして指定します。
交差検証済みモデルの作成で指定できる名前と値の引数は、CVPartition
、Holdout
、KFold
、Leaveout
の 4 つのうちのいずれかのみです。
例: cvp = cvpartition(500,KFold=5)
を使用して、500 個の観測値に対する 5 分割交差検証について無作為な分割を作成するとします。この場合、CVPartition=cvp
を設定して交差検証分割を指定できます。
Holdout
— ホールドアウト検証の対象データの比率
(0,1) の範囲のスカラー値
ホールドアウト検証に使用するデータの比率。範囲 [0,1] のスカラー値として指定します。Holdout=p
を指定した場合、以下の手順が実行されます。
p*100
% のデータを無作為に選択して検証データとして確保し、残りのデータを使用してモデルに学習をさせる。コンパクトな学習済みモデルを交差検証済みモデルの
Trained
プロパティに格納する。
交差検証済みモデルの作成で指定できる名前と値の引数は、CVPartition
、Holdout
、KFold
、Leaveout
の 4 つのうちのいずれかのみです。
例: Holdout=0.1
データ型: double
| single
KFold
— 分割の数
10
(既定値) | 1 より大きい正の整数値
交差検証済みモデルで使用する分割の数。1 より大きい正の整数値として指定します。KFold=k
を指定した場合、以下の手順が実行されます。
データを無作為に
k
個のセットに分割する。各セットについて、そのセットを検証データとして確保し、他の
k
– 1 個のセットを使用してモデルに学習をさせる。k
個のコンパクトな学習済みモデルを、交差検証済みモデルのTrained
プロパティに含まれているk
行 1 列の cell ベクトルに格納する。
交差検証済みモデルの作成で指定できる名前と値の引数は、CVPartition
、Holdout
、KFold
、Leaveout
の 4 つのうちのいずれかのみです。
例: KFold=5
データ型: single
| double
Lambda
— 正則化パラメーターの値
"[]"
(既定値) | 非負のスカラー値のベクトル
LASSO の正則化パラメーターの値。非負のスカラー値のベクトルとして指定します。この引数の値が空の場合、cvshrink
は交差検証を実行しません。
例: Lambda=[.01 .1 1]
データ型: single
| double
Leaveout
— Leave-one-out 法の交差検証のフラグ
"off"
(既定値) | "on"
Leave-one-out 法の交差検証のフラグ。"on"
または "off"
として指定します。Leaveout="on"
を指定した場合、n 個の観測値 (n は、モデルの NumObservations
プロパティで指定される、欠損観測値を除外した観測値の個数) のそれぞれについて以下の手順が実行されます。
いずれかの観測値を検証データとして確保し、他の n - 1 個の観測値を使用してモデルに学習をさせる。
n 個のコンパクトな学習済みモデルを、交差検証済みモデルの
Trained
プロパティに含まれている n 行 1 列の cell ベクトルに格納する。
交差検証済みモデルの作成で指定できる名前と値の引数は、CVPartition
、Holdout
、KFold
、Leaveout
の 4 つのうちのいずれかのみです。
例: Leaveout="on"
データ型: char
| string
Threshold
— 重みのしきい値
0 (既定値) | 数値ベクトル
重みのしきい値。弱学習器の重みに対する低域カットオフの数値ベクトルとして指定します。cvshrink
は、交差検証の計算で Threshold
より低い重みの学習器を破棄します。
例: Threshold=[0 .01 .1]
データ型: single
| double
出力引数
vals
— 平均二乗誤差の交差検証値
数値行列
平均二乗誤差の交差検証値。L
行 T
列の数値行列として返されます。L
は正則化パラメーター Lambda
の値の数、T
は弱学習器の重みに対する Threshold
の値の数です。
nlearn
— 学習器の平均数
数値行列
交差検証を使用したアンサンブル内の学習器の平均数。L
行 T
列の数値行列として返されます。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);
Lambda
と Threshold
の値を指定します。これらの値を使用してアンサンブルの交差検証を実行します。
[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
になります。
拡張機能
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は、GPU 配列を完全にサポートします。詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2011a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)