Я намагаюся підготувати градієнтну модель для збільшення градієнта на 50 к. Прикладах із 100 числовими функціями. XGBClassifierобробляє 500 дерев протягом 43 секунд на моїй машині, тоді як GradientBoostingClassifierобробляє лише 10 дерев (!) за 1 хвилину і 2 секунди :( Я не намагався виростити 500 дерев, як це займе години. Я використовую те саме learning_rateі max_depthналаштування , Дивись нижче.
Що робить XGBoost набагато швидшим? Чи використовує вона якусь нову реалізацію для збільшення градієнта, якого не знають хлопці sklearn? Або це "рубання кутів" та вирощування дрібних дерев?
ps Я знаю про це обговорення: https://www.kaggle.com/c/higgs-boson/forums/t/10335/xgboost-post-comcharge-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)