主要内容

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

quantileError

回帰の袋树の使用による分位点損失

説明

犯错= quantileError (MdlXは,回帰の袋树MdlX内の予測子デ,タの観測値に適用することにより予測した中央値に対してテ,ブルX内の真の応答を比較して,平均絶対偏差(mad)の1/2を返します。

  • MdlTreeBaggerモデルオブジェクトでなければなりません。

  • X内の応答変数名は,学習データが格納されているテーブルに含まれている応答変数の名前と同じでなければなりません。

犯错= quantileError (MdlXResponseVarNameは,テ,ブルXに含まれている真の応答および予測子の変数を使用します。ResponseVarNameは応答変数の名前です。Mdl。PredictorNamesには予測子変数の名前を格納します。

犯错= quantileError (MdlXYは,テ,ブルまたは行列X内の予測子デ,タとベクトルY内の応答デ,タを使用します。

犯错= quantileError (___名称,值では,前の構文のいずれかと,1以上の名称,值ペア引数によって指定される追加オプションを使用します。たとえば,分位確率,誤差のタaaplプ,分位点回帰誤差の推定に含める木を指定します。

入力引数

すべて展開する

回帰の袋树。関数TreeBaggerによって作成されたTreeBaggerモデルオブジェクトとして指定します。Mdl。方法の値は回归でなければなりません。

分位数の推定に使用する標本デ,タ。数値行列またはテブルを指定します。

Xの各行は1の観測値に対応し,各列は1。Yを指定する場合は,Xの行数とYの長さが等しくなければなりません。

  • 数値行列の場合

    • Xの列を構成する変数の順序は,Mdlに学習させた(Mdl。PredictorNamesに格納されている)予測子変数の順序と同じでなければなりません。

    • テ,ブル(たとえば资源描述)を使用してMdlに学習をさせた場合,资源描述に含まれている予測子変数がすべて数値変数であれば,Xを数値行列にすることができます。资源描述に種類の異なる予測子変数(数値および直言データ型など)が混在している場合,quantileErrorでエラ,がスロ,されます。

    • 真の応答はYで指定します。

  • テ,ブルの場合

    • quantileErrorは,文字ベクトルのcell配列ではないcell配列や複数列の変数をサポ,トしません。

    • テ,ブル(たとえば资源描述)を使用してMdlに学習をさせた場合,X内のすべての予測子変数は変数名およびデ,タ型が,Mdlに学習させた(Mdl。PredictorNamesに格納されている)変数と同じでなければなりません。ただし,Xの列の順序が资源描述の列の順序に対応する必要はありません。资源描述Xに追加の変数(応答変数や観測値の重みなど)を含めることができます。

    • 数値行列を使用してMdlに学習をさせた場合,Mdl。PredictorNames内の予測子名とX内の対応する予測子変数名が同じでなければなりません。学習時に予測子の名前を指定する方法にいては,関数TreeBaggerの名前と値のペアの引数PredictorNamesを参照してください。X内の予測子変数はすべて数値ベクトルでなければなりません。Xに追加の変数(応答変数や観測値の重みなど)を含めることができます。

    • Xに応答変数が含まれている場合

      • 応答変数の名前がMdlに学習させた応答変数と同じである場合,応答変数名や真の応答のベクトルを指定する必要はありません。quantileErrorの既定設定ではその変数が真の応答に使用されます。

      • 真の応答はResponseVarNameまたはYで指定できます。

デ,タ型:表格||

応答変数名。文字ベクトルまたは字符串スカラ,を指定します。ResponseVarNameは,標本デ,タの表Xに含まれている応答変数の名前でなければなりません。

表格Xに応答変数が含まれており,Mdlの学習に使用した応答変数と同じ名前である場合,ResponseVarNameを指定する必要はありません。quantileErrorの既定設定ではその変数が真の応答に使用されます。

デ,タ型:字符|字符串

真の応答。数値ベクトルを指定します。Xの行数とYの長さは等しくなければなりません。

デ,タ型:|

名前と値の引数

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

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

アンサンブル誤差のタ@ @プ。“模式”と次の表の値から構成されるコンマ区切りのペアとして指定します。τ分位数の値であるとします。

説明
“累积”

犯错は,分位点回帰の累積誤差が格納されているMdl。NumTrees元素个数(τ列の数値行列です。错(jkは,Mdl。Trees(1:jの学習器のみを使用したτkの分位点回帰誤差です。

“合奏”

犯错は,アンサンブル全体に対する分位点回帰の累積誤差が格納されている1行元素个数(τ列の数値ベクトルです。错(kは,τkのアンサンブル分位点回帰誤差です。

“个人”

犯错は,個々の学習器の分位点回帰誤差が格納されているMdl。NumTrees元素个数(τ列の数値行列です。错(jkは,Mdl。Trees(jの学習器のみを使用したτkの分位点回帰誤差です。

“累积”または“个人”の場合,またはUseInstanceForTreeを使用して分位点推定に含める木の本数を減らすと,犯错の行数はMdl。NumTreesより少なくなります。

例:“模式”、“累积”

観測値の重み。“重量”と,大小(X, 1)に等しい長さをも正の値の数値ベクトルから構成されるコンマ区切りのペアとして指定します。分位点回帰誤差を推定するときに,quantileError权重を使用して偏差の加重平均を計算します。

既定では,quantileError1という重みを各観測値に割り当てており,これは偏差の非加重平均となります。

分位確率。分位数的と区間[0,1]の値が含まれている数値ベクトルから構成されるコンマ区切りのペアとして指定します。quantileErrorは,分位数の各要素にいて,分位数内のすべての確率に対応する分位点回帰誤差を返します。

例:“分位数”,[0 0.25 0.5 0.75 1]

デ,タ型:|

応答の推定に使用する木の@ @ンデックス。“树”“所有”または正の整数の数値ベクトルから構成されるコンマ区切りのペアとして指定します。ンデックスはMdl。Treesのセルに対応します。各セルにはアンサンブル内の木が格納されます。の最大値は、アンサンブル内の木の本数(Mdl。NumTrees)以下でなければなりません。

“所有”の場合,quantileErrorはアンサンブル内のすべての木を使用します(1: Mdl。NumTreesになります)。

既定以外の値を指定すると,犯错の行数が変化する可能性があります。

例:“树”,[1 10 Mdl。NumTrees]

デ,タ型:字符|字符串||

各木の応答の重み。“TreeWeights”元素个数(個の非負値による数値ベクトルから構成されるコンマ区切りのペアとして指定します。の値です。

“模式”,“个人”を指定した場合,quantileErrorTreeWeightsを無視します。

デ,タ型:|

各観測値に対する予測に使用する木を指定するンジケタ。“UseInstanceForTree”とn行Mdl。Trees列の逻辑行列から構成されるコンマ区切りのペアとして指定します。nはX内の観測値(行)の個数です。UseInstanceForTreeの行は観測値に,列はMdl。Trees内の学習器に対応します。“所有”は,分位数を推定するときにすべての観測値に対してすべての木を使用するよう指定します。

UseInstanceForTree (jk真正的である場合,quantileErrorは観測値X (j:)の応答を予測するときにMdl。Trees(k内の木を使用します。

すべてが値から構成されている行を指定すると,ランダムフォレストによる予測の代わりにMdl。Y内の応答デ,タを直接使用して分位数を推定できます。たとえば,応答デ,タを使用して観測値jの分位数を推定し,他のすべての観測値についてはランダムフォレストによる予測を使用するには,次の行列を指定します。

UseInstanceForTree = true(size(mml . x,2), mml . numtrees);UseInstanceForTree(j,:) = false(1, mll . numtrees);

既定以外の値を指定すると,犯错の行数が変化する可能性があります。また,の値はUseInstanceForTreeの値に影響を与えます。UseInstanceForTreeの値がUであるとします。quantileErrorは,の指定による推定には使用されない木に対応するUの列を無視します。まり,quantileError“UseInstanceForTree”の値をU (:,に再設定します。“树”の値です。

デ,タ型:字符|字符串|逻辑

出力引数

すべて展開する

分位点回帰誤差の1/2。数値スカラ,またはT元素个数(τ列の行列として返されます。τ分位数の値です。

Tは,模式UseInstanceForTreeおよび分位数の値に依存します。“树”,を指定し,既定値の“UseInstanceForTree”を使用するとします。

  • “模式”、“累积”の場合,犯错元素个数(元素个数(τ列の数値行列になります。错(jkは,Mdl。Trees((1:j))の学習器を使用したτkの累積的な分位点回帰誤差です。

  • “模式”、“合奏”の場合,犯错1元素个数(τ列の数値ベクトルになります。错(kは,Mdl。Trees(の学習器を使用したτkの累積的な分位点回帰誤差です。

  • “模式”,“个人”の場合,犯错元素个数(元素个数(τ列の数値行列になります。错(jkは,Mdl。Trees(j))の学習器を使用したτkの分位点回帰誤差です。

すべて展開する

carsmallデ,タセットを読み込みます。与えられたエンジン排気量,重量および気筒数に対して自動車の燃費の平均を予測するモデルを考えます。气缸はカテゴリカル変数であるとします。

负载carsmall圆柱=分类(圆柱);X =表(排量,重量,气缸,MPG);

デ,タセット全体を使用して,バギング回帰木のアンサンブルに学習をさせます。100個の弱学習器を指定します。

rng (1);%用于再现性Mdl = TreeBagger(100,X,“英里”“方法”“回归”);

MdlTreeBaggerアンサンブルです。

分位点回帰を実行し,予測された条件付き中央値を使用してアンサンブル全体の疯狂を推定します。

err = quantileError(Mdl,X)
Err = 1.2339

Xは応答および同等の変数名が含まれているテーブルなので,応答変数の名前またはデータを指定する必要はありません。ただし,次の構文を使用して応答を指定することができます。

err = quantileError(Mdl,X,“英里”
Err = 1.2339

carsmallデ,タセットを読み込みます。与えられたエンジン排気量,重量および気筒数に対して自動車の燃費の平均を予測するモデルを考えます。

负载carsmallX =表(排量,重量,气缸,MPG);

デタの75%を学習セットに,25%を検定セットに無作為に分割します。サブセットの@ @ンデックスを抽出します。

rng (1);%用于再现性cvp = cvpartition(size(X,1),“坚持”, 0.25);idxTrn = training(cvp);idxTest = test(cvp);

学習セットを使用して,バギング回帰木のアンサンブルに学習をさせます。250個の弱学習器を指定します。

Mdl = TreeBagger(250,X(idxTrn,:)),“英里”“方法”“回归”);

検定セットにいて,0.25,0.5および0.75の累積的な分位点回帰誤差を推定します。予測子デ,タを数値行列として,応答デ,タをベクトルとして渡します。

err = quantileError(Mdl,X{idxTest,1:3},MPG(idxTest),分位数的,[0.25 0.5 0.75],...“模式”“累积”);

犯错は,累積的な分位点回帰誤差が含まれている250行3列の行列です。列は分位確率に,行はアンサンブル内の木に対応します。誤差は累積的なので,前の木から集約した予測が含まれています。Mdlの学習にはテーブルを使用しましたが,テーブル内の予測子変数がすべて数値型である場合は,代わりに予測子データの行列を指定することができます。

同じプロットに累積的な分位数誤差をプロットします。

图;情节(错);传奇(“0.25分位数误差”“0.5分位数错误”0.75分位数误差);ylabel (“分位数错误”);包含(“树指数”);标题(“累积分位数回归误差”

图中包含一个轴对象。标题为Cumulative Quantile Regression Error的axes对象包含3个类型为line的对象。这些对象表示0.25分位数误差、0.5分位数误差、0.75分位数误差。

初めの2つの四分位数については約60本の木を使用して学習をさせれば十分であると考えられますが,3番目の四分位数には約150本の木が必要です。

詳細

すべて展開する

ヒント

  • アンサンブル内の木の本数を調整するには,“模式”、“累积”を設定し,木の。必要な木の最大本数は,分位点回帰誤差が横ばい状態になる木の。

  • 学習標本が小さい場合にモデルの性能を調べるには,代わりにoobQuantileErrorを使用します。

参考文献

[1]布雷曼,L.随机森林。机器学习45,pp. 5-32, 2001。

[2] Meinshausen, N.“分位数回归森林。”机器学习研究,Vol. 7, 2006, pp. 983-999。

バ,ジョン履歴

R2016bで導入