XGBoost アルゴリズムを理解しようとしていますが、いくつか質問があります。
いろいろなブログを読みましたが、どれも違う話をしているようです。以下は、私が使用しているコードのスニペットです (参照用のみ)。
param <- list( objective = 'reg:linear',
eta = 0.01,
max_depth = 7,
subsample = 0.7,
colsample_bytree = 0.7,
min_child_weight = 5
)
以下は、私が持っている4つの質問です。
1) XGBoost は、係数を変更することでコスト関数を最小化するために、適切なグラデーションを使用しているようです。線形回帰を使用する gblinear モデルで実行できることを理解しています。
ただし、gbtree モデルの場合、モデルを変更するための係数がツリー ベースのモデルにないため、XGboost はどのように適切な勾配を適用できますか。それともありますか?
2) 同様に、gbtree モデルは、L2 正則化にパラメーター lambda を使用し、L1 正則化にパラメーター alpha を使用します。正則化が係数にいくつかの制約を適用することは理解していますが、やはり gbtree モデルには係数がありません。では、どのように制約を適用できますか?
3) 目的関数の仕事は何ですか。たとえば、reg:linear の場合。私が理解していることから、目的関数を割り当てることは、使用する評価メトリックをモデルに伝えるだけです。ただし、それには別の eval_metric パラメータがあります。では、なぜ目的関数が必要なのでしょうか?
4) 簡単に言えば、min_child_weight とは何ですか? 最低限のノーだと思いました。葉ノードの観察の。しかし、ヘッセ行列などと関係があると思いますが、よくわかりません。
したがって、誰かがこれらについて簡単で理解しやすい用語でもう少し光を当てることができれば、本当に感謝しています?