【Xgboostシリーズ1】xgboostとは?

みなさん、こんにちは。これはxgboostシリーズの最初のものです。xgboost [1]は、機械学習のインタビューで尋ねられたアルゴリズムです。

最初に、xgboostのコアを理解するために1つのことについて説明します。これがxgboostの数学モデルですので、理解したいのなら、この数学は飛ばしてください。

xgboostは、ツリーを持ち上げるという概念に基づいています。これは、ツリーが比較的不安定であるため、ツリーを学習すると効果が低くなる可能性があることを意味します。特定の機能またはサンプルを削除すると、再トレーニングツリーの構造が変化し、予測につながります結果は不安定です。

モデルをより堅牢にする(結果がより安定する)ために、ツリーをトレーニングしてから、ツリーが十分にトレーニングされていない場所、つまりターゲットとのギャップを確認できます。次に、これらのギャップに合うように別のツリーを作成します。これは
boostメソッドのアイデアでありxgbosotは一種のboostメソッドです。

次に、データサイエンスアルゴリズムの一般的な特性について説明します。アルゴリズムでは、まず目的関数を知ってから、正則化があるかどうかを確認してから、最適化の手段、つまり目的関数を最小化する方法を確認します。

まず、最適化された目的関数
まず、xgboostの目的関数(損失関数)は次のとおりです。
ここに画像の説明を挿入
方程式の左側は時間tでの損失関数で、側の小さいlは各サンプルの損失を表し、nはサンプルの数を表します。

小さなlには2つの項目があります。最初の項目は次のとおりです。
ここに画像の説明を挿入
これは最適化が必要な損失です。xgboostの予測値はt番目のステップの予測値であり、t-1ツリーのすべての予測値は予測値です。サンプルごとに、各ツリーがリーフノードに割り当てられます。このtツリーのリーフノードの追加は、ツリーのステップtでの予測です。

予測と真の値の差が小さいことを望み、たとえば、損失関数としてmseを選択できます。

2番目のアイテムは:
ここに画像の説明を挿入
これは通常のアイテムです。式のtはt番目のツリーを表します。つまり、これはツリーごとに行われます。

第二に、通常のアイテムの本当の顔
xgboostに最初に触れたとき、私はとても牛のような気分になりますが、ツリーにはLRやニューラルネットワークのような明確なパラメーターがありません。

正則化の本質は、ツリーの複雑さを減らすことであり、ツリーの複雑さは、ツリーの深さと葉ノードの数によって表すことができます。

xgboostも同様の考え方を採用しています。xgboostのツリーの正則化式は次のとおりです。
ここに画像の説明を挿入
方程式の右側最初の項Tは、葉ノードの数を表します。2番目の項目のwは、ニューラルネットワークのパラメーターに似ていますが、実際には、ツリーの葉ノードの値をツリー最適化の目標として使用できます。このwは、各の葉ノードの値です。両側の係数はパラメータです。

3.目的関数を最小化するには?
私たちは皆、テイラー展開を多数学習しており、xgboostもテイラー展開の例を使用しました。で、我々場合は
ここに画像の説明を挿入
二次のテイラー展開式に従ってにおける損失関数、損失関数は次のようになります。

ここに画像の説明を挿入
giは
ここに画像の説明を挿入
atの1次導関数、hiは2番目の逆数です。

定数を削除すると、損失関数は次のようになります。
ここに画像の説明を挿入

Ijがj番目の葉ノードとして定義されている場合、式は次のとおりです。
ここに画像の説明を挿入
その中のiはi番目のサンプルを意味し、qはマッピング関数です。つまり、Xiはj番目のノードにマッピングされます。

損失関数を次のように書き換えます。

ここに画像の説明を挿入

我々は必要なパラメータは、リーフノードの値、すなわちWであり、第2の直接導出線を与えるために0に等しくすることができる必要があり、極値を要求します:
ここに画像の説明を挿入'

上記の損失関数の式にwjを入れます。
ここに画像の説明を挿入

4番目、分割点の測定
3番目のセクションでは、ツリーの構造がわかっているときに、葉のノードの値を割り当てて損失関数を最小化する方法を知っています。この概要では、xgboostが分割点を測定する方法について説明します。決定木には、情報獲得、ジニ指数などがあります。xgboostにも同様の測定方法があります。

xgboostはバイナリツリーです。つまり、ルートノードから始まり、2つのフォークが分割されます。その計算方法は、ツリーを分割し、損失関数の削減の値を計算することです。どの分割方法で損失関数が削減されるほど、方法が選択されますか。計算式は次のとおりです。
ここに画像の説明を挿入
この式は、現在の損失を差し引くものです左ノードと右ノードの損失。

概要:xgboost目的関数、正則化、目的関数を最適化する方法、分割点の測定について説明しました。次のセクションでは、ツリー分割方法について説明します。

参考文献

[1] https://www.kdd.org/kdd2016/papers/files/rfp0697-chenAemb.pdf

99件の元の記事を公開 20件の賞賛 90,000件以上の表示

おすすめ

転載: blog.csdn.net/qq_16761099/article/details/105566188