web-dev-qa-db-ja.com

勾配ブースティング手順(xgboost)で使用されるパラメーター「ウェイト」(DMatrix)はどうですか?

Xgboostでは、weightにパラメータDMatrixを設定することが可能です。これは明らかに、重みのリストであり、各値は対応するサンプルの重みです。これらの重みが実際に勾配ブースティング手順でどのように使用されるかについての情報は見つかりません。それらはetaに関連していますか?

たとえば、すべてのサンプルでweightを0.3に設定し、etaを1に設定すると、etaを0.3に設定してweightを設定するのと同じになります。 1に?

14
Olivier_s_j

xgboostは、注記したように、DMatrixの構築中にインスタンスの重み付けを可能にします。このウェイトはインスタンスに直接結び付けられており、トレーニング全体を通じて移動します。したがって、は勾配とヘッシアンの計算に含まれxgboostモデルの分割点とtraingに直接影響します。

ここ および ここ を参照してください

インスタンスの重みファイル

XGBoostは、インスタンスの重要性を区別するための重みを各インスタンスに提供することをサポートしています。たとえば、次の例の「train.txt」ファイルにインスタンスウェイトファイルを提供するとします。

train.txt.weight

1

0.5

0.5

1

0.5

これは、XGBoostが1番目と4番目のインスタンス、つまりトレーニング中にポジティブなインスタンスをより強調することを意味します。構成は、グループ情報の構成と同様です。インスタンスファイル名が「xxx」の場合、XGBoostは同じディレクトリに「xxx.weight」という名前のファイルがあるかどうかを確認し、ある場合はモデルのトレーニング中に重みを使用します。

それはとはかなり異なりますeta

etaは単に、アンサンブルにトレーニングされた最後のツリーのブレンド量をxgboostに伝えます。アンサンブルが各反復でどれだけ貪欲でなければならないかの尺度。

たとえば、すべてのサンプルでweightを0.3に設定し、etaを1に設定すると、etaを0.3に設定し、weightを設定するのと同じになります。 1に?

  • すべてのインスタンスの定数weightが1のデフォルトであるので、すべてのインスタンスの定数.3に変更しても、重み付けは等しくなるため、影響が大きすぎることはありません。ただし、etaを.3から最大1に設定すると、トレーニングがより積極的になります。

21
T. Scharf