loss
アンサンブル回帰モデルの回帰誤差
構文
説明
は、L
= loss(ens
,tbl
,ResponseVarName
)tbl
内のデータに対する ens
の予測を真の応答 tbl.ResponseVarName
と比較し、予測間の平均二乗誤差 L
を返します。L
の解釈は損失関数 (LossFun
) と加重スキーム (Weights
) によって異なります。一般に、優れた分類器の方が分類損失値が小さくなります。loss
の式については、重み付けされた平均二乗誤差のセクションで説明しています。
は、table L
= loss(ens
,tbl
,ResponseVarName
)tbl
内の予測子データと tbl.ResponseVarName
内の真のクラス ラベルを使用して、学習済みアンサンブル分類モデル ens
の分類損失 L
を返します。
では、前の構文におけるいずれかの入力引数の組み合わせに加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、損失関数、出力の集約レベル、計算を並列に実行するかどうかを指定できます。L
= loss(___,Name=Value
)
例
アンサンブル予測の平均二乗誤差の計算
carsmall
データ セットを使用して、アンサンブル予測器の損失を求めます。
carsmall
データ セットを読み込み、エンジン排気量、馬力および車両重量を予測子として選択します。
load carsmall
X = [Displacement Horsepower Weight];
回帰木のアンサンブルに学習をさせ、MPG
の予測における回帰誤差を求めます。
ens = fitrensemble(X,MPG); L = loss(ens,X,MPG)
L = 0.3463
入力引数
ens
— アンサンブル回帰モデル
RegressionEnsemble
モデル オブジェクト | CompactRegressionEnsemble
モデル オブジェクト
完全なアンサンブル回帰モデル。fitrensemble
で学習させた RegressionEnsemble
モデル オブジェクト、またはcompact
で作成した CompactRegressionEnsemble
モデル オブジェクトとして指定します。
tbl
— 標本データ
table
標本データ。テーブルとして指定します。tbl
の各行は 1 つの観測値に、各列は 1 つの予測子変数に対応します。tbl
には、モデルを学習させるために使用したすべての予測子が含まれていなければなりません。文字ベクトルの cell 配列ではない cell 配列と複数列の変数は使用できません。
table に格納されている標本データを使用して ens
に学習させた場合、loss
の入力データも table に含まれていなければなりません。
データ型: table
ResponseVarName
— 応答変数名
name of variable in tbl
tbl
応答変数の名前。tbl
内の変数の名前で指定します。応答変数は、数値ベクトルでなければなりません。
ResponseVarName
には文字ベクトルまたは string スカラーを指定しなければなりません。たとえば、応答変数 Y
が tbl.Y
として格納されている場合、"Y"
として指定します。それ以外の場合、tbl
の列は Y
を含めてすべて予測子として扱われます。
データ型: char
| string
Y
— 応答データ
数値列ベクトル
応答データ。tbl
または X
と同じ行数の数値列ベクトルとして指定します。Y
の各エントリは、tbl
または X
の対応する行のデータに対する真の応答です。
Y
に含まれる NaN
値は欠損値として扱われます。欠損値がある Y
の観測値は、損失の計算に使用されません。
データ型: double
| single
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: loss(Mdl,X,Learners=[1 2 4],UseParallel=true)
は、アンサンブル内の 1 番目、2 番目、および 4 番目の学習器を使用し、計算を並列に実行するように指定します。
Learners
— 弱学習器のインデックス
[1:ens.NumTrained]
(既定値) | 正の整数のベクトル
loss
で使用するアンサンブル内の弱学習器のインデックス。範囲 [1:ens.NumTrained
] の正の整数のベクトルとして指定します。既定では、すべての学習器が使用されます。
例: Learners=[1 2 4]
データ型: single
| double
LossFun
— 損失関数
"mse"
(既定値) | function handle
損失関数。"mse"
(平均二乗誤差) または関数ハンドルとして指定します。関数ハンドル fun
を渡す場合、loss
でこの関数を次のように呼び出します。
fun(Y,Yfit,W)
ここで、Y
、Yfit
、W
は、すべて同じ長さの数値ベクトルです。
Y
は、観測された応答です。Yfit
は予測された応答です。W
は観測の重みです。
fun(Y,Yfit,W)
の戻り値はスカラーでなければなりません。
例: LossFun="mse"
例: LossFun=@
Lossfun
データ型: char
| string
| function_handle
Mode
— 出力の集約レベル
"ensemble"
(既定値) | "individual"
| "cumulative"
出力の集約レベル。"ensemble"
、"individual"
、または "cumulative"
として指定します。
値 | 説明 |
---|---|
"ensemble" | 出力は、アンサンブル全体に対する損失を表すスカラー値になります。 |
"individual" | 出力は、学習させた学習器ごとに 1 つの要素をもつベクトルになります。 |
"cumulative" | 出力は、学習器の入力リストから学習器 1:J を使用して要素 J が取得されたベクトルになります。 |
例: Mode="individual"
データ型: char
| string
UseParallel
— 並列実行のフラグ
false
または 0
(既定値) | true
または 1
並列実行のフラグ。数値または logical の 1
(true
) または 0
(false
) として指定します。UseParallel=true
を指定した場合、関数 loss
は parfor
を使用して for
ループの反復を実行します。Parallel Computing Toolbox™ がある場合、ループが並列に実行されます。
例: UseParallel=true
データ型: logical
Weights
— 観測値の重み
ones(size(X,1),1)
(既定値) | 数値ベクトル | tbl
内の変数の名前
観測値の重み。数値ベクトルまたは tbl
内の変数の名前を指定します。X
または tbl
の各行に含まれている観測値には、Weights
の対応する重みが適用されます。Weights
を付加した loss
の式については、重み付けされた平均二乗誤差のセクションで説明しています。
数値ベクトルとして Weights
を指定する場合、Weights
のサイズは X
または tbl
の行数と等しくなければなりません。
tbl
内の変数名を Weights
として指定する場合、文字ベクトルまたは string スカラーを指定しなければなりません。たとえば、重みが tbl.W
として格納されている場合、Weights
を "W"
として指定します。それ以外の場合、Tbl
の列は tbl.W
を含めすべて予測子として扱われます。
独自の損失関数を指定しない場合、Weights
が正規化され、合計が各クラスの事前確率の値になります。
例: Weights="W"
データ型: single
| double
| char
| string
詳細
重み付けされた平均二乗誤差
n はデータの行数、xj は j 行目のデータ、yj は xj の真の応答、f(xj) は xj に対する ens
の応答予測とします。w は、重み付けのベクトルとします (既定はすべて 1)。
まず、各重みを重みの合計で割り、それらの合計が 1 になるようにします: w→w/Σw。平均二乗誤差 L は次のとおりです。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
自動並列サポート
Parallel Computing Toolbox™ を使用して自動的に並列計算を実行することで、コードを高速化します。
並列実行するには、この関数を呼び出すときに名前と値の引数 UseParallel
を true
に設定します。
並列計算の全般的な情報については、自動並列サポートを使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
名前と値の引数 UseParallel
は、tall 配列、GPU 配列、コード生成では使用できません。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
関数
loss
では代理分岐をもつ決定木学習器を使用して学習させたアンサンブルはサポートしていません。UseParallel
は 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)