Tôi đang cố gắng đào tạo một mô hình tăng cường độ dốc hơn 50 nghìn ví dụ với 100 tính năng số. XGBClassifier
xử lý 500 cây trong vòng 43 giây trên máy của tôi, trong khi GradientBoostingClassifier
chỉ xử lý 10 cây (!) trong 1 phút và 2 giây :( Tôi không buồn cố gắng trồng 500 cây vì sẽ mất hàng giờ. Tôi đang sử dụng tương tự learning_rate
và max_depth
cài đặt , xem bên dưới.
Điều gì làm cho XGBoost nhanh hơn nhiều? Có phải nó sử dụng một số triển khai mới lạ để tăng cường độ dốc mà các chàng trai sklearn không biết? Hay là "cắt góc" và trồng cây nông?
ps Tôi biết về cuộc thảo luận này: https://www.kaggle.com/c/higgs-boson/forums/t/10335/xgboost-post-competition-survey nhưng không thể có câu trả lời ở đó ...
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)