Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

oobError

クラス:TreeBagger

out-of-bag 誤差

構文

err = oobError(B)
err = oobError(B,'param1',val1,'param2',val2,...)

説明

err = oobError(B)は、学習済みのバガーBを使用して学習データ内の out-of-bag 観測値の誤分類確率 (分類木の場合) または平均二乗誤差 (回帰木の場合) を計算します。errは長さがNTreesのベクトルです。NTreesはアンサンブル内の木の本数です。

err = oobError(B,'param1',val1,'param2',val2,...)では、オプション パラメーターの名前/値のペアを指定します。

“模式” oobErrorによる誤差の計算方法を示す文字ベクトルまたは string スカラー。'cumulative'(既定) に設定した場合、このメソッドは累積誤差を計算します。errは長さがNTreesのベクトルになり、1 番目の要素はtrees(1)の誤差を、2 番目の要素はtrees(1:2)の誤差を与え、trees(1:NTrees)まで他の要素についても同様になります。'individual'に設定すると、errは長さNTreesのベクトルになります。ここで、各要素はアンサンブル内のそれぞれのツリーからの誤差です。'ensemble'に設定すると、errはアンサンブル全体の累積誤差を示すスカラーとなります。
'Trees' この計算に含めるツリーを示すインデックスのベクトル。既定の設定では、この引数は'all'に設定され、メソッドはすべてのツリーを使用します。'Trees'が数値ベクトルである場合、メソッドは'cumulative'モードと'individual'モードでは長さNTreesのベクトルを返します。ここで、NTreesは入力ベクトルの要素数です。'ensemble'モードではスカラーを返します。たとえば、'cumulative'モードで、最初の要素はtrees(1)からの誤差を出力し、2 番目の要素はtrees(1:2)からの誤差を出力し、以下同様です。
'TreeWeights' ツリーの重みのベクトル。このベクトルは、'Trees'ベクトルと同じ長さでなければなりません。oobErrorは、これらの重みを使用して、重み付けされていない単純な多数決ではなく、加重平均を取得することで、指定したツリーからの出力を結合します。'individual'モードでこの引数を使用することはできません。

アルゴリズム

oobErrorは、out-of-bag 観測値の重み付きアンサンブル誤差を推定します。つまり、oobErrorは、入力のTreeBaggerモデルBに格納されている学習データにerrorを適用し、各木について out-of-bag 観測値を選択してアンサンブル誤差を構成します。

  • B.XB.Yは、それぞれ学習データの予測子と応答です。

  • B.OOBIndicesは、どの観測値が out-of-bag であるかをアンサンブル内の各木について指定します。

  • B.Wは、観測値の重みを指定します。

  • 次のようなオプションがあります。

    • 名前と値のペアの引数“模式”を使用すると、各木に対する個別の重み付きアンサンブル誤差または全体の重み付きアンサンブル誤差を返すように指定できます。既定の設定では、oobErrorは累積的な重み付きアンサンブル誤差を返します。

    • 名前と値のペアの引数'Trees'を使用すると、アンサンブル誤差の計算に使用する木を選択できます。

    • 名前と値のペアの引数'TreeWeights'を使用すると、各木に重みを割り当てることができます。

oobErrorは,以下で説明するアルゴリズムを適用します。詳細は,errorおよびpredictを参照してください。

回帰問題の場合、oobErrorは重み付き MSE を返します。

  1. oobErrorは、すべての out-of-bag 観測値について応答を予測します。

  2. MSE の推定は、“模式”の値によって異なります。

    • “模式”,'Individual'が指定された場合、oobErrorは、選択された木に含まれている任意の in-bag 観測値を、観測された学習データの応答の加重標本平均に設定します。そして、oobErrorは選択された各木について重み付き MSE を計算します。

    • “模式”,'Cumulative'が指定された場合、ooErrorは重み付き累積 MSE のベクトルを返します。ここで、MSEtは選択された木 t の重み付き累積 MSE です。oobErrorは、MSEtを計算するため、木 t までの 1 本以上の木の out-of-bag である各観測値について、木 t までの予測応答の累積加重平均を計算します。oobErrorは、木 t までの選択されたすべての木について in-bag である観測値を、観測された学習データの応答の加重標本平均に設定します。そして、oobErrorは MSEtを計算します。

    • “模式”,'Ensemble'が指定された場合、oobErrorは 1 本以上の木の out-of-bag である各観測値について、選択されたすべての木について加重平均を計算します。oobErrorは、選択されたすべての木について in-bag である観測値を、観測された学習データの応答の加重標本平均に設定します。そして、oobErrorは重み付き MSE を計算します。これは、最終的な重み付き累積 MSE と同じになります。

分類問題の場合、oobErrorは重み付き誤分類率を返します。

  1. oobErrorは、すべての out-of-bag 観測値のクラスを予測します。

  2. 重み付き誤分類率の推定値は、“模式”の値によって決まります。

    • “模式”,'Individual'が指定された場合、oobErrorは、選択された木に含まれている任意の in-bag 観測値を、すべての学習応答値について重みを付けて予測した最も一般的なクラスに設定します。最も一般的なクラスが複数ある場合、errorTreeBaggerモデルのClassNamesプロパティで最初にリストされているものを最も一般的であると見なします。そして、oobErrorは選択された各木について重み付き誤分類率を計算します。

    • “模式”,'Cumulative'が指定された場合、ooErrorは重み付き累積誤分類率のベクトルを返します。et*は、選択された木 t についての重み付き累積誤分類率です。oobErrorは、et*を計算するため、木 t までの木の 1 つ以上について out-of-bag である観測値のそれぞれについて、木 t まで重みを付けて累積的に予測した最も一般的なクラスを求めます。oobErrorは、木 t までの選択されたすべての木について in-bag である観測値を、すべての学習応答における重みを付けた最も一般的なクラスに設定します。最も一般的なクラスが複数ある場合、errorTreeBaggerモデルのClassNamesプロパティで最初にリストされているものを最も一般的であると見なします。そして、oobErrorは et*を計算します。

    • “模式”,'Ensemble'が指定された場合、oobErrorは 1 本以上の木について out-of-bag である各観測値について、選択された木すべてについて重みを付けた最も一般的なクラスを計算します。oobErrorは、木 t までの選択されたすべての木について in-bag である観測値を、すべての学習応答における重みを付けた最も一般的なクラスに設定します。最も一般的なクラスが複数ある場合、errorTreeBaggerモデルのClassNamesプロパティで最初にリストされているものを最も一般的であると見なします。そして、oobErrorは重み付き誤分類率を計算します。これは、最終的な重み付き累積誤分類率と同じになります。