Prediction is nothing new but the old concept of getting to guess the future based on previous learning. Every day we encounter a situation where we predict the future outcomes, or we want to know that we could have known this earlier. 

    There are two main types of prediction. One is qualitative prediction, which is used when data is not available or meaningless. This is generally done based on the expert's view.  The other is quantitative prediction. It is based on data and patterns of historical data. With the latest developments, more and more data can be got at lower cost,  hence the more use-case can be applied with quantitative prediction. Below are some of the most common use-cases: 

    • Sales forecasting
    • Stock prediction
    • Traffic forecast
    • Weather forecasting
    • Energy consumption prediction

    With rapidly developing machine learning mechanisms, now, companies can get a clearer view of their future business by building prediction models properly. 

    Gradient boosting models stand out within the machine learning community for the good results they achieve in a multitude of use cases, both regression and classification. In recent years, it has been shown that they can achieve very competitive results. Some of the advantages of using this type of model are:

    • Ease of including exogenous variables in addition to autoregressive ones.
    • They allow including non-linear relations into the model.
    • High scalability, which allows them to be applied when large volumes of data are available.

    There are three more advanced gradient boosting models: XGBoost, LightGBM, and Catboost.  Recently there has a new python library called "skforecast" that eases using scikit-learn regressors as multi-step forecasters. It makes us more convenient to use the above three gradient boosting for time-series prediction.