The old (before fix) best_ntree_limit ignores the num_class parameters, which is incorrect. In before we workarounded it in c++ layer to avoid possible breaking changes on other language bindings. But the Python interpretation stayed incorrect. The PR fixed that in Python to consider num_class, but didn't remove the old workaround, so tree calculation in predictor is incorrect, see PredictBatch in CPUPredictor.
======================
XGBoost Python Package
======================
|PyPI version|
Installation
============
From `PyPI <https://pypi.python.org/pypi/xgboost>`_
---------------------------------------------------
For a stable version, install using ``pip``::
pip install xgboost
.. |PyPI version| image:: https://badge.fury.io/py/xgboost.svg
:target: http://badge.fury.io/py/xgboost
For building from source, see `build <https://xgboost.readthedocs.io/en/latest/build.html>`_.