GBDTノート

GBDTノート

GBDTブースティングアルゴリズムであり、我々はそれがアルゴリズムと異なるのアダブースト、アダブーストに精通スキームを持ち上げるについて話します。

次のような違いは、次のとおり重量を更新するために、1つの弱学習する前にエラーを使用して、アダブーストのアルゴリズムは、重量をサンプルし、その後反復ラウンド値。

GBDTが反復的であるが、GBDT弱い学習者がCARTモデルを要求する必要があり、

そして、それはモデルで予測可能なサンプルの損失ほどの小さな要求されたモデルのトレーニングでGBDT。

 

GBDTは、3つの部分から構成されています。

DT(回帰Decistion木)、GB(勾配ブースティング)和収縮(衰减)

GBDは、複数の決定木で構成され、ツリーは、すべての最終結果の結果である加算:反復ランダムフォレスト・ツリーとの間の差ランダムフォレスト異なる構築物サブツリーの異なるサンプルを使用して描画構築およびmツリーれますM-1ツリーは前の結果との間には関係がない反復は場合ツリーの使用の前に形成されたビルド結果サブツリー決定木を構築する残差構築するために、次の入力データとしてサブツリーを、そして場合、最終的な予測によるサブツリー予測された配列(シリアル)の構築、及び予測結果を追加。

トレーニング方法

私たちは、機能の損失が低減され続けることを期待、そして可能な限り迅速に低減することができます。1.損失関数は、勾配方向に沿って降下してみましょう。これはギガバイトです。回帰問題として、負の勾配を現在のモデルの値を用いて回帰木2.損失関数に適合するように残留ツリー近似アルゴリズムを持ち上げます。これは、DTです。このトレーニングラウンド3彼らは局所最適解またはグローバル最適解の収束を達成するために、可能な限り迅速に、可能な限り迅速に機能の損失を低減するために作ることができます。

機能の選択

gbdt選択機能の詳細は、実際にはCARTツリー生成プロセスです。gbdt弱識別器は、デフォルトのCARTツリーで選択されています。実際には、弱識別器を選択する必要があるかもしれません(高・低分散のバイアスがフレームに対象フレームを高めることを提供する。)CARTの木(バイナリツリー)を生成します:

CARTツリー生成プロセスは、実際には機能選択プロセスであります

  1. 我々は現在、M機能の合計ですと仮定します。

  2. 機能jを選択し、最初のノードとして二分木(ジニ係数メトリックが選択されています)。

  3. 分割点mを選択J特徴値。

  4. Jのサンプル値は、mは別のカテゴリが分かれているよりも大きい場合、mは、クラス分けされているよりも小さいので、彼らはCARTツリーノードを構築することを特徴とします。

  5. 他の生成処理ノードと、これは同じ反復世代です。

この機能J、J、及びどのカット点mの特性を選択するための選択方法を選択時間の各ラウンドのために、元のgbdtアプローチは、各機能を通る全ての第一、非常に暴力的であったし、それを介して機能するため、すべての可能なカットを反復しますmが最適である点が、最適カット点jを検索します。

アルゴリズム論

訓練サンプル(X1、Y1)の複数の第一の入力ベクトルXと出力変数Yの組成与えられ、(X2は、Y2)......( Xnを、Ynが)、 目標は、近似関数F(X)を見つけることである損失よう関数L(Y、F(X) )損失の最小値。最小二乗又は損失関数損失関数の絶対値を用いて、L一般的な損失関数:

 

最適なソリューション:

 

最終モデルは、F(x)は基底関数f(x)の加重和の最適なセットであることを前提としています。

 

膨張FM(X)から貪欲アルゴリズムの結果を使用してのアイデアは、最適Fを見つけます。

 

しかし、困難まだ貪欲法毎に近似計算の勾配降下法を用いて、最適な基底関数fを選択します

定数関数F0(X)を考えます:

 

勾配降下学習率を解決よると:

 

データを使用して(X_I、α_im)(i = 1 ...... n)は、M-ツリーを与えるために、フィット残差CART回帰木を見つけるために計算されます。

 

モデルを更新します。

 

欠点:sklearnでGBDT最も遅いの実行速度

sklearn.ensemble インポートGradientBoostingRegressor 
#の使用AdaBoostRegressor; GBDTモデルCARTモデルのみサポート 
gbdt = GradientBoostingRegressor(n_estimators = 100、learning_rate = 0.01、random_state = 14 
gbdt.fit(x_train、y_train)
プリントトレーニングセットR ^ 2 :%5F "%のgbdt.score(x_train、y_train))
 プリント" 試験は、2 ^ R&LT設定します。%5F "。%のgbdt.score(x_test、android.permission.FACTOR))を

おすすめ

転載: www.cnblogs.com/TimVerion/p/11315698.html