CPC G06Q 30/0202 (2013.01) [G06N 7/01 (2023.01); G06N 20/00 (2019.01); G06Q 10/047 (2013.01); G06Q 10/1093 (2013.01); G06Q 30/0605 (2013.01)] | 19 Claims |
1. A computer-implemented method comprising:
receiving a request to predict transaction quantities for a plurality of transaction entities for a future time period;
identifying historical transaction data for the transaction entities for a plurality of categories of transacted items, wherein the plurality of categories are organized using a hierarchy of levels;
dividing the future time period into a set of multiple time units;
for each respective time unit of the multiple time units:
iterating over multiple levels of the hierarchy and combinations of transaction entities and transacted items starting at a lowest level, wherein the iterating includes determining, as transaction data to use for the lowest level, historical transaction data from pairs of transacted entities and transacted items for which at least a threshold number of transactions have occurred for the lowest level, and wherein the iterating includes, for each current level in the iteration and for each transacted item:
identifying features to include in a machine learning quantity forecasting model for the current level, the transacted item, and the time unit;
building the identified features into the machine learning quantity forecasting model for the current level, the transacted item, and the time unit;
using, by at least one computing device, the features to train the machine learning quantity forecasting model for the current level, the transacted item, and the time unit to generate a trained machine learning quantity forecasting model for the current level, the transacted item, and the time unit, including using a training dataset to tune hyperparameters for the machine learning quantity forecasting model;
identifying multiple machine learning transaction date prediction models, wherein the multiple machine learning transaction date prediction models include at least one compressed model configured to use compressed training data;
generating uncompressed training data;
generating, by the at least one computing device and from the uncompressed training data, compressed training data for the at least one compressed model, including compressing patterns of multiple zero elements followed by a non-zero element into a single value;
training, using the at least one computing device, each of the multiple machine learning transaction date prediction models using the compressed training data determined from transaction data for the current level;
identifying, by each respective machine learning transaction date prediction model, predicted transaction dates in the time unit predicted for the current level;
comparing each of the multiple machine learning transaction date prediction models based on prediction accuracy data generated from testing data determined from the transaction data for the current level, wherein the comparing includes decompressing, by the at least one computing device, compressed results from compressed models before the comparing;
selecting a best machine learning transaction date prediction model for the current level based on the comparison of all of the multiple machine learning transaction date prediction models, wherein a first best machine learning transaction date prediction model selected for a first level is a different type of machine learning model than a second best machine learning transaction date prediction model selected for a different second level;
training, using the at least one computing device, the best machine learning transaction date prediction model based on both the testing data for the current level and the training data for the current level;
computing values for the features using predicted transaction dates in the time unit generated by the best machine learning transaction date prediction model and the historical transaction data;
using the trained machine learning quantity forecasting model to generate predicted quantity information for the current level for the transacted item for the predicted transaction dates in the time unit;
using the predicted quantity information for the current level for the predicted transaction dates in the time unit to identify updated features to use in an updated machine learning quantity forecasting model for a next time unit of the multiple time units;
determining next pairs of transacted entities and transacted items to use for a next level by determining pairs of transacted entities and transacted items for which at least the threshold number of transactions have not occurred for the current level; and
determining, as transaction data to use for the next level, historical transaction data for the next pairs of transacted entities and transacted items for which at least the threshold number of transactions have occurred for the next level;
aggregating, for each transacted item, predicted quantity information for multiple levels into aggregated quantity prediction information; and
providing the aggregated quantity prediction information in response to the request.
|