xgboostがsklearn GradientBoostingClassifierよりもずっと速いのはなぜですか?


29

私は、100個の数値特徴を備えた50kの例で勾配ブースティングモデルをトレーニングしようとしています。XGBClassifier一方、私のマシンで43秒以内に、ハンドル500本の木、GradientBoostingClassifierハンドルのみ10樹木(!)1分2秒:(私は気にしませんでしたでは、それは時間がかかるだろうと500本の木を育てるしようとしている。私は、同じ使用していますlearning_rateし、max_depth設定を、 下記参照。

XGBoostがこれほど速くなったのはなぜですか?sklearnの人が知らない勾配ブースティングのためのいくつかの新しい実装を使用していますか?それとも、「角を切り」、より浅い木を育てるのですか?

PS私はこの議論を知っていますhttps : //www.kaggle.com/c/higgs-boson/forums/t/10335/xgboost-post-competition-surveyが、そこに答えを得ることができませんでした...

XGBClassifier(base_score=0.5, colsample_bylevel=1, colsample_bytree=1,
gamma=0, learning_rate=0.05, max_delta_step=0, max_depth=10,
min_child_weight=1, missing=None, n_estimators=500, nthread=-1,
objective='binary:logistic', reg_alpha=0, reg_lambda=1,
scale_pos_weight=1, seed=0, silent=True, subsample=1)

GradientBoostingClassifier(init=None, learning_rate=0.05, loss='deviance',
max_depth=10, max_features=None, max_leaf_nodes=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, n_estimators=10,
presort='auto', random_state=None, subsample=1.0, verbose=0,
warm_start=False)

2
「LightGBMがXGBoostよりもずっと速いのはなぜか」と言い直さなければならないでしょう。:)
ihadanny

回答:


25

×

私の推測では、最大の効果は、XGBoostが分割ポイントの近似値を使用するという事実から得られるということです。10000の分割が可能な連続機能がある場合、XGBoostはデフォルトで「最高」の300分割のみを考慮します(これは簡略化です)。この動作はsketch_epsパラメーターによって制御されます。詳細についてはdocをご覧ください。下げてみて、違いを確認してください。で、それについての言及がないのでscikit-学ぶドキュメントは、私はそれを利用できないと思います。XGBoostメソッドが何であるかは、彼らの論文(arxiv)で学ぶことができます。

XGBoostは、このような分割ポイントの評価にも近似を使用します。scikitがどの基準で分割を評価しているかはわかりませんが、残りの時間差を説明できます。


ドレッシングコメント

分割点の評価について

しかし、「XGBoostは、このような分割ポイントの評価に近似値を使用します」とはどういう意味ですか?私が理解している限り、評価には、論文の式(7)に示されているように、最適な目的関数の正確な削減を使用しています。

LyH1+hLyH1hLLH1

LyH1+hL


@Winksに感謝します。論文を読んで、分割候補を選択するための近似アルゴリズムの意味を確認します。しかし、「XGBoostは、このような分割ポイントの評価にも近似値を使用します」とはどういう意味ですか?私の知る限り、評価では、論文の式(7)に示されているように、最適な目的関数の正確な減少を使用しています。
-ihadanny

コメントを修正するために回答を編集しました。スプリットポイントの評価の詳細については、このQ / Aを確認してください。
ウィンクス

@Winksに感謝します!ここで私のより詳細な質問に答えることができれば素晴らしいでしょう:datascience.stackexchange.com/q/10997/16050
ihadanny

これは素晴らしい答えです。ハットトリック !
エリアサ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.