Saya mencoba untuk melatih model peningkatan gradien lebih dari 50k contoh dengan 100 fitur numerik. XGBClassifiermenangani 500 pohon dalam waktu 43 detik pada mesin saya, sementara GradientBoostingClassifierhanya menangani 10 pohon (!) dalam 1 menit dan 2 detik :( Saya tidak repot-repot mencoba menumbuhkan 500 pohon karena akan memakan waktu berjam-jam. Saya menggunakan pengaturan learning_ratedan max_depthpengaturan yang sama , Lihat di bawah.
Apa yang membuat XGBoost jauh lebih cepat? Apakah itu menggunakan beberapa implementasi baru untuk meningkatkan gradien yang tidak diketahui orang-orang sklearn? Atau apakah itu "memotong sudut" dan menumbuhkan pohon dangkal?
ps Saya mengetahui diskusi ini: https://www.kaggle.com/c/higgs-boson/forums/t/10335/xgboost-post-competition-survey tetapi tidak bisa mendapatkan jawabannya di sana ...
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)