-->

light gbm - python API vs Scikit-learn API

2019-05-14 12:50发布

问题:

I was trying to apply lgbm in one of my problems. For that I was going through "http://lightgbm.readthedocs.io/en/latest/Python-API.html". However, I have a basic question. Is there any difference between Training API and Scikit-learn API? Can we use both the APIs to achieve same result for the same problem?

Thanks, Dipanjan.

回答1:

The short answer: yes, they will provide identical results if you will configure them in identical ways.

The reason is that sklearn API is just a wrapper around the "native training" API, which in turn is a wrapper around the backend C++ library. At the end, this is your choice to make. I personally would advice in favour of the sklearn API. The 2 major advantages are:

  • you can make use of full sklearn toolkit (pipelines with data preprocessing, hyperparameter optimisation, model evalueation, etc)
  • you can switch between different model in a painless way, i.e. your input data has the same format (pd.DataFrame or np.ndarray), trainign interface is the same and you can switch between sklearn models, lightgbm, xgboost, catboost or vowpal wabbit by simply instantiating different objects and passing them through the same procedure.