Generating machine learning based models for time series forecasting
A system according determines a machine learning based model for forecasting time series data for a given use case. The system determines a model metric for a specific use case of time series data. The system accesses a pool of machine learning based models including a plurality of machine learning based models machine learning based models based on different machine learning techniques. For each of the plurality of machine learning based models the system performs forecasting using the machine learning based model and determines the value of the model metric for the machine learning based model. The system selects a machine learning based model based on comparison of values of the model metric for machine learning based models. The system uses the selected machine learning based model for forecasting values for the time series data for the application.
1 . A computer-implemented method for generating a machine learning based model for forecasting time series data, comprising:
receiving information describing characteristics of an application of a time series data;
determining a model metric based on the characteristics of the application, wherein determining the model metric comprises i.) generating a first feature vector describing the characteristics of the application; ii.) clustering a plurality of applications into a plurality of categories of applications by grouping similar applications with similar characteristics into a same category and generating a separate feature vector for each of the plurality of categories of applications wherein each separate feature vector describes the characteristics for its corresponding category; iii.) mapping the plurality of categories to at least one model metric for each category; iv.) comparing the first feature vector with the separate feature vectors to determine a distance measure between the first feature vector and each separate feature vector; v.) using the distance measures to select a category most similar to the application; vi.) determining a model metric associated with the most similar category to the application, wherein the model metric represents a criterion for evaluating machine learning based models;
accessing a plurality of machine learning based models, the plurality of machine learning based models comprising machine learning models based on a plurality of machine learning techniques;
training each of the plurality of machine learning based models using a first training dataset derived from the time series data;
evaluating each of the plurality of machine learning based models to determine a first value of the model metric for each machine learning based model;
filtering out a subset of the plurality of machine learning based models based on the first values of the model metric, wherein the subset comprises one or more top machine learning based models determined by comparison of the first values of the model metric for each of the plurality of machine learning based models;
training each machine learning based model in the subset of the plurality of machine learning based models using a second training dataset derived from the time series data, the second training dataset being larger than the first training dataset;
evaluating each machine learning based model in the subset using the second training dataset to determine a second value of the model metric for each machine learning based model in the subset;
selecting a best-performing machine learning based model for the application from the subset of the plurality of machine learning based models based on comparisons of the second values of the model metric; and
using the selected machine learning based model for forecasting values for the time series data for the application.
2 . The computer-implemented method of claim 1 , wherein performing forecasting using each of the plurality of machine learning based models comprises:
determining the first training data set and the second training dataset based on the time series data, the first training data set comprising a first training subset and a first test subset, the second training data set comprising a second training subset and a second test subset;
wherein the second training dataset includes the first training dataset;
wherein the first and second training dataset comprise sequential time series intervals of the time series data and wherein each machine learning based model in the subset is trained using the data from a first time interval, then hypertuned using data from a smaller second time interval that follows the first time interval, and then tested using data from a third time interval that follows the first and second time intervals in order to reduce overfitting by validation on an entire seasonal range.
3 . The computer-implemented method of claim 1 , wherein the plurality of machine learning based models comprises sets of machine learning based models using different machine learning based techniques, the sets of machine learning based models including one or more of:
a set of machine learning based models based on simple exponential smoothing;
a set of machine learning based models based on double exponent smoothing technique; and
a set of machine learning based models based on triple exponent smoothing technique; and
a set of machine learning based models based on autoregressive integrated moving average; and
a set of machine learning based models based on additive regression models.
4 . The computer-implemented method of claim 1 , wherein the model metric is one of:
mean absolute percentage error;
root mean square error;
mean absolute error;
mean squared error, or
symmetric mean absolute percentage error.
5 . The computer-implemented method of claim 1 , further comprising:
training the plurality of machine learning based models using the first and second training datasets in parallel fashion across a multi-processor system.
6 . The computer-implemented method of claim 1 , wherein the plurality of machine learning based models comprises, a set of machine learning based models for each of the plurality of machine learning techniques, wherein selecting the machine learning based model comprises:
selecting a plurality of top machine learning based models, wherein each top machine learning based model is selected from a set of machine learning based models using a particular machine learning based technique; and
selecting the best machine learning based model from the plurality of top machine learning based models.