ブースト方法(下)ブースティングツリー

ブースティング法では、加算モデル (つまり、基底関数の線形結合) と順方向ステップバイステップ アルゴリズムが使用されます。決定木に基づくブースティング手法をブースティング ツリーと呼びます。分類問題の決定木は二分分類木であり、回帰問題の決定木は二分回帰木です。AdaBoost の場合に見られる基本的な分類子 x<v または x>v は、ルート ノードによって直接接続された 2 つのリーフ ノードを持つ単純な決定木 (いわゆる決定スタンプ) として見ることができます。

ブースト ツリー モデルは、デシジョン ツリーの加法モデルとして表現できます。

ブースティング ツリー アルゴリズム:

ブースティング ツリー アルゴリズムでは、順方向ステップバイステップ アルゴリズムが使用されます。最初に初期リフティング ツリー f 0(x)=0 を決定します。m 番目のステップのモデルは次のとおりです。

 

このうち fm-1(x) が現在のモデルであり、次の決定木のパラメータ Θm は経験的なリスク最小化を通じて決定されます。 

以下では、さまざまな問題に対するブースティング ツリー学習アルゴリズムについて説明します。主な違いは、使用される損失関数が異なることです。これらには、二乗誤差損失関数を使用した回帰問題、指数損失関数を使用した分類問題、および一般損失関数を使用した一般決定問題が含まれます。

2 クラス分類問題の場合、ブースト ツリー アルゴリズムは AdaBoost アルゴリズムの基本分類器を 2 クラス分類ツリーに限定するだけでよく、今回のブースト ツリー アルゴリズムは AdaBoost の特殊なケースと言えます。アルゴリズムについては、ここでは詳しく説明しません。回帰問題のブーストされたツリーについては以下で説明します。

 

回帰問題のブースト ツリーでは、次の順方向段階的アルゴリズムが使用されます。 

現在のモデル fm-1(x) が与えられた場合、順方向ステップバイステップ アルゴリズムの m 番目のステップでは、次の解が必要です。 

m 番目のツリーのパラメータである m を取得します。

二乗誤差損失関数を使用する場合、

その損失は次のようになります。 

ここで、は現在のモデル適合データの残差です。

したがって、回帰問題に対するブースト ツリー アルゴリズムの場合は、現在のモデルの残差を単純に当てはめるだけです。このように、アルゴリズムは非常に単純です。

場合:

表 8.2 に示すトレーニング データを考慮すると、x の値の範囲は区間 [0.5,10.5]、y の値の範囲は区間 [5.0,10.0] です。この回帰問題のブースト ツリー モデルを学習するには、次のことを考慮します。基底関数としてスタンプのみを使用します。

ほどく:

(1) 最初のステップで f 1(x) を求めます。これは回帰木 T1(x) です。

 まず、次の最適化問題を通じてトレーニング データのセグメンテーション ポイントを解決します。

 

R1 と R2 内の二乗損失誤差を最小限に抑える c1 と c2 を見つけるのは簡単です。 

ここで、N1、N2 は R1、R2 のサンプル点です。

トレーニング データのセグメンテーション ポイントを見つけます。

与えられたデータに従って、次のカット ポイントを考慮します: 1.5、2.5、3.5、4.5、5.5、6.5、7.5、8.5、9.5

各セグメント化ポイントについて、対応する R1、R2、c1、c2、および

 

たとえば、s=1.5、R1={1}、R2={2,3,...,10}、c1=5.56、c2=7.50の場合、 

s と m(s) の計算結果は次のとおりです (表 8.3 を参照)。 

表 8.3 から、s=6.5 のときに m(s) が最小値に達することがわかります。このとき、R1={1,2,...,6}、R2={7,8,9,10}、 c1=6.24、c2=8.91、つまり回帰木 T1(x) は次のようになります。 

上記は、回帰木を解くための標準的な手順です。

(2) 第 2 ラウンド:

トレーニングデータを f 1(x) でフィッティングした場合の残留誤差を表 8.4 に示します。ここで、r 2i=yi-f 1(xi)、i=1,2,…,10 です。

 

トレーニング データを f 1(x) でフィッティングすることによって得られるモデルの二乗損失誤差を計算します。 

ステップ 2 T2(x) を計算します。この方法は、近似データが表 8.4 の残差であることを除いて、T1(x) を求めるのと同じです。取得することができます: 

 トレーニング データを f2(x) でフィッティングするための二乗損失誤差は次のとおりです。

引き続き取得します: 

 トレーニング データを f6(x) でフィッティングするための二乗損失誤差は次のとおりです。

この時点で誤差要件が満たされていると仮定すると、f(x)=f 6(x) が望ましいリフティング ツリーになります。 

勾配ブースティングアルゴリズム:

ブースティング ツリーは、加算モデルと順方向ステップバイステップ アルゴリズムを使用して、学習の最適化プロセスを実現します。損失関数が二乗損失関数および指数損失関数である場合、最適化の各ステップは単純です。しかし、一般的な損失関数の場合、各ステップを最適化するのはそれほど簡単ではないことがよくあります。この問題に対応して、Freidman は勾配ブースティング アルゴリズムを提案しました。これは最急降下法を使用した近似方法です。重要なのは、現在のモデルの値に損失関数の負の勾配を使用することです。

 回帰問題に対するブースト ツリー アルゴリズムの残差の近似として回帰ツリーを適合させます。

アルゴリズム:

説明:

(1) 初期モデルを初期化し、以下の最適化式を用いて、ルートノードが 1 つだけのツリーモデルに相当する損失を比較的小さくできる定数値 c を推定します。

 

(2)現在のモデルの損失関数の負の勾配の値を計算し、それを残差の推定値として使用します。二乗損失関数の場合、これは一般に残差と呼ばれるものであり、一般の損失関数の場合、これは残差の近似値です。 

(3)残差を用いて、その残差を入力として回帰木を分割する(前述の標準回帰決定木分割処理を実行し、この分割を実行する)。今回得られた回帰木はcであり、以下の式がこれを意味します。

 

したがって、ラウンドのモデルが得られます。

このセグメント化によって得られる部分数の最適な数は Cm として示され、さらに前のラウンドのモデルが現在のラウンドで得られる回帰木のモデルになります。

 

 Cm によって得られた以前のモデルは、

回帰木モデルです。 

(4) M 回の循環の後、最終的に回帰木モデルが得られます。

 

おすすめ

転載: blog.csdn.net/stephon_100/article/details/125359464
おすすめ