Upgrading xgboost 0.80 to 0.81
Breaking0.80 → 0.81Breaking2Security1Deprecated1New17Changed5Fixed37Other46
BreakingUpgrade verdict
2 breaking changes and a security fix.
In plain terms
- The experimental AVX-accelerated gradient computation has been taken out.
- If you train with external memory, old temporary page files no longer work with this version. Delete them before resuming training. Saved models are not affected.
- The JVM packages now warn that network communication is not encrypted.
- You no longer need to prefix regression objectives with gpu:; XGBoost picks the device for you.
Must act 4 items need code or config changes
What you must change
Breaking2
Removes the experimental AVX support for gradient computation.
Changes external memory page file format, breaking backwards compatibility for temporary storage during external memory training.
Security1
JVM packages warn the user about the lack of over-the-wire encryption.
Deprecations to plan for
Deprecated1
Deprecates the gpu: tag for regression objectives since devices are now selected automatically.
gpu:API changes
Generated by DepDelta from published Python source. Not mixed with prose notes.
- added:
export XGBRanker
- changed:
method Booster.dump_model(fout, fmap=…, with_stats=…) → method Booster.dump_model(fout, fmap=…, with_stats=…, dump_format=…)
- changed:
method XGBClassifier.fit(X, y, sample_weight=…, eval_set=…, eval_metric=…, early_stopping_rounds=…, verbose=…, xgb_model=…, sample_weight_eval_set=…) → method XGBClassifier.fit(X, y, sample_weight=…, eval_set=…, eval_metric=…, early_stopping_rounds=…, verbose=…, xgb_model=…, sample_weight_eval_set=…, callbacks=…) - changed:
method XGBClassifier.predict(data, output_margin=…, ntree_limit=…) → method XGBClassifier.predict(data, output_margin=…, ntree_limit=…, validate_features=…) - changed:
method XGBClassifier.predict_proba(data, ntree_limit=…) → method XGBClassifier.predict_proba(data, ntree_limit=…, validate_features=…) - changed:
method XGBModel.fit(X, y, sample_weight=…, eval_set=…, eval_metric=…, early_stopping_rounds=…, verbose=…, xgb_model=…, sample_weight_eval_set=…) → method XGBModel.fit(X, y, sample_weight=…, eval_set=…, eval_metric=…, early_stopping_rounds=…, verbose=…, xgb_model=…, sample_weight_eval_set=…, callbacks=…) - changed:
method XGBModel.predict(data, output_margin=…, ntree_limit=…) → method XGBModel.predict(data, output_margin=…, ntree_limit=…, validate_features=…) - added:
class XGBRanker(XGBModel) - added:
constructor XGBRanker(max_depth=…, learning_rate=…, n_estimators=…, silent=…, objective=…, booster=…, n_jobs=…, nthread=…, gamma=…, min_child_weight=…, max_delta_step=…, subsample=…, colsample_bytree=…, colsample_bylevel=…, reg_alpha=…, reg_lambda=…, scale_pos_weight=…, base_score=…, random_state=…, seed=…, missing=…, **kwargs) - added:
method XGBModel.set_params(**params) - added:
method XGBRanker.fit(X, y, group, sample_weight=…, eval_set=…, sample_weight_eval_set=…, eval_group=…, eval_metric=…, early_stopping_rounds=…, verbose=…, xgb_model=…, callbacks=…) - added:
method XGBRanker.predict(data, output_margin=…, ntree_limit=…, validate_features=…) - added:
property XGBModel.coef_ - added:
property XGBModel.intercept_