Я намагаюся підготувати градієнтну модель для збільшення градієнта на 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)