Systems and methods for features engineering
Systems and methods for features engineering, in which internal and external signals are received and fused. The fusing is based on meta-data of each of the one or more internal signals and each of the one or more external signals. A set of features is generated based on one or more valid combinations that match a transformation input, the transformation forming part of library of transformations. Finally, a set of one or more features is selected from the plurality of features, based on a predictive strength of each feature. The set of selected features can be used to train and select a machine learning model.
1 . A computer-implemented method comprising:
engineering, by a processor, one or more features; and
choosing, by the processor, a forecasting method to make a forecast, based on a forecast request;
wherein engineering one or more features comprises:
receiving, by the processor, internal signal data;
receiving, by the processor, external signal data;
fusing, by the processor, data from the internal signal data and the external signal data, the fusing based on meta-data of each of the internal signal data and each of the external signal data;
generating, by the processor, a plurality of features from the fused data based on one or more valid combinations that match a transformation input, the transformation forming part of a library of transformations; and
selecting, by the processor, one or more features from the plurality of features, based on a predictive strength of each feature, to provide a set of selected features; and wherein choosing the forecasting method comprises:
training, by the processor, one or more machine learning models, using the set of selected features;
wherein the computer comprises the processor and a memory storing instructions that configure the processor to execute the method of each of:
i) selecting, by the processor, a machine learning model from the one or more machine learning models to make the forecast, the selecting comprising:
training, by the processor, the one or more machine learning models on a first portion of a data set;
validating, by the processor, the machine learning model on a second portion of the data set; and
retraining, by the processor, the machine learning model on a sum of the first portion and the second portion;
ii) retraining, by the processor, a previously-selected machine learning model from the one or more machine learning models and using the retrained model to make the forecast; and
iii) making, by the processor, the forecast based on the previously-selected machine learning model; and
the computer comprises the processor and a memory storing instructions that, when executed by the processor, configure the system to select and execute the method of i), ii), or iii) based on whether the forecast request is or is not a first request.
2 . The computer-implemented method of claim 1 , wherein:
the forecast request is the first request; and
for the retraining, by the processor, the machine learning model on the sum of the first portion and the second portion, the data set comprises a sum total of data associated with the set of selected features.
3 . The computer-implemented method of claim 1 , wherein:
the forecast request is not the first request;
a new category of processed data has been added to storage since a most recent forecast, the new category of processed data comprising at least one of a new category of processed historical product data and a new category of processed historical location data; and
the data set is an expanded data set.
4 . The computer-implemented method of claim 1 , wherein:
the forecast request is not the first request;
an additional amount of processed data has been added to storage since a most recent forecast, the additional amount of processed data comprising at least one of new processed historical product data and new processed historical location data;
the additional amount of processed data exceeds a threshold; and
the data set is an expanded data set.
5 . The computer-implemented method of claim 1 , wherein:
the forecast request is not the first request,
the data set is an expanded data set, and
the method further comprises:
evaluating, by the processor, a forecast accuracy of the forecast against incoming processed historical product data; and
selecting, by the processor, the machine learning model if the forecast accuracy falls below a threshold, comprises:
training, by the processor, the plurality of machine learning models on the first portion of the expanded data set, the expanded data set comprising the incoming processed historical product data;
validating, by the processor, the machine learning model on the second portion of the expanded data set; and
retraining, by the processor, the machine learning model on the sum total of the first portion and the second portion.
6 . The computer-implemented method of claim 1 , wherein:
the forecast request is not the first request;
the data set is an expanded data set; and
the method further comprises:
evaluating, by the processor, a time interval between a most recent forecast and the request; and
retraining the previously selected machine learning model if the time interval exceeds a threshold, comprising:
retraining, by the processor, the previously-selected machine learning model on the expanded data set comprising new processed data collected during the time interval.
7 . The computer-implemented method of claim 1 , wherein training the one or more machine learning models comprises:
training, by the processor, one or more configurations of a machine learning model of the one or more models.
8 . The computer-implemented method of claim 7 , wherein a configuration of the one or more configurations comprises a number of layers in a neural network of the machine learning model.
9 . A system comprising:
a processor; and
a memory storing instructions that, when executed by the processor, configure the system to:
engineer, by the processor, one or more features; and
choose, by the processor, a forecasting method to make a forecast, based on a forecast request;
wherein when engineering the one or more features, the system is configured to:
receive, by the processor, internal signal data;
receive, by the processor, external signal data;
fuse, by the processor, data from the internal signal data and the external signal data, the fusing based on meta-data of each of the internal signal data and each of the external signal data;
generate, by the processor, a plurality of features from the fused data based on one or more valid combinations that match a transformation input, the transformation forming part of a library of transformations; and
select, by the processor, one or more features from the plurality of features, based on a predictive strength of each feature, to provide a set of selected features;
and wherein when choosing the forecasting method, the system is configured to:
train, by the processor, one or more machine learning models, using the set of selected features;
and, the system is configured to execute each of:
i) select, by the processor, a machine learning model from the one or more machine learning models to make the forecast, the system being configured to
train, by the processor, the one or more machine learning models on a first portion of a data set;
validate, by the processor, the machine learning model on a second portion of the data set; and
retrain, by the processor, the machine learning model on a sum of the first portion and the second portion;
ii) retrain, by the processor, a previously-selected machine learning model from the one or more machine learning models and using the retrained model to make the forecast; and
iii) make, by the processor, the forecast based on the previously-selected machine learning model,
wherein the system is configured to select and execute the method of i), ii), or iii) based on whether the forecast request is or is not a first request.
10 . The system of claim 9 , wherein:
the forecast request is the first request; and
retrain, by the processor, the machine learning model on the sum of the first portion and the second portion, the data set comprising a sum total of data associated with the set of selected features.
11 . The system of claim 9 , wherein:
the forecast request is not the first request;
a new category of processed data has been added to storage since a most recent forecast, the new category of processed data comprising at least one of a new category of processed historical product data and a new category of processed historical location data;
the data set is an expanded data set; and
when selecting the machine learning model from the one or more machine learning models to make the forecast, the system is further configured to:
train, by the processor, the plurality of machine learning models on a first portion of the expanded data set, the expanded data set comprising the new category of processed data;
validate, by the processor, the machine learning model on a second portion of the expanded data set; and
retrain, by the processor, the machine learning model on the sum total of the first portion and the second portion.
12 . The system of claim 9 , wherein:
the forecast request is not the first request;
the data set is an expanded data set;
an additional amount of processed data has been added to storage since a most recent forecast, the additional amount of processed data comprising at least one of new processed historical product data and new processed historical location data;
the additional amount of processed data exceeds a threshold; and
when selecting the machine learning model from the one or more machine learning models to make the forecast, the system is further configured to:
train, by the processor, the plurality of machine learning models on a first portion of the expanded data set, the expanded data set comprising the additional amount of processed data;
validate, by the processor, the machine learning model on the second portion of the expanded data set; and
retrain, by the processor, the machine learning model on the sum of the first portion and the second portion.
13 . The system of claim 9 , wherein:
the forecast request is not the first request;
the data set is an expanded data set, and
the method further comprises:
evaluate, by the processor, a forecast accuracy of the forecast against incoming processed historical product data; and
select, by the processor, the machine learning model if the forecast accuracy falls below a threshold, comprising:
train, by the processor, the plurality of machine learning models on the first portion of the expanded data set, the expanded data set comprising the incoming processed historical product data;
validate, by the processor, the machine learning model on the second portion of the expanded data set; and
retrain, by the processor, the machine learning model on a sum total of the first portion and the second portion.
14 . The system of claim 9 , wherein:
the forecast request is not the first request;
the data set is an expanded data set; and
the system is further configured to:
evaluate, by the processor, a time interval between a most recent forecast and the request; and
retrain the previously selected machine learning model if the time interval exceeds a threshold, comprising:
retrain, by the processor, the previously-selected machine learning model on the expanded data set comprising new processed data collected during the time interval.
15 . The system of claim 9 , wherein when training the one or more machine learn models, the system is configured to:
train, by the processor, one or more configurations of a machine learning model of the one or more models.
16 . The system of claim 15 , wherein a configuration of the one or more configurations comprises a number of layers in a neural network of the machine learn model.
17 . A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to:
engineer, by a processor, one or more features; and
choose, by the processor, a forecasting method to make a forecast, based on a forecast request;
wherein when engineering one or more features, the instructions that when executed by the computer, cause the computer to:
receive, by the processor, internal signal data;
receive, by the processor, external signal data;
fuse, by the processor, data from the internal signal data and the external signal data, the fusing based on meta-data of each of the internal signal data and each of the external signal data;
generate, by the processor, a plurality of features from the fused data based on one or more valid combinations that match a transformation input, the transformation forming part of a library of transformations; and
select, by the processor, one or more features from the plurality of features, based on a predictive strength of each feature, to provide a set of selected features;
and wherein when choosing the forecasting method, the instructions that when executed by the computer, cause the computer to:
train, by the processor, one or more machine learning models, using the set of selected features;
and, the system is configured to execute each of:
i) select, by the processor, a machine learning model from the one or more machine learning models to make the forecast, the instructions being configured so that when executed by the computer, further cause the computer to
train, by the processor, the one or more machine learning models on a first portion of a data set;
validate, by the processor, the machine learning model on a second portion of the data set; and
retrain, by the processor, the machine learning model on a sum of the first portion and the second portion;
ii) retrain, by the processor, a previously-selected machine learning model from the one or more machine learning models and using the retrained model to make the forecast; and
iii) make, by the processor, the forecast based on the previously-selected machine learning model,
wherein the system is configured to select and execute i), ii), or iii) based on whether the forecast request is or is not a first request.
18 . The computer-readable storage medium of claim 17 , wherein:
the forecast request is the first request; and
when selecting, by the processor, the machine learning model from the one or more machine learning models to make the forecast, the instructions that when executed by the computer, cause the computer to:
retrain, by the processor, the machine learning model on the sum of the first portion and the second portion, the data set comprising a sum total of data associated with the set of selected features.
19 . The computer-readable storage medium of claim 17 , wherein:
the forecast request is not the first request;
the data set is an expanded data set;
a new category of processed data has been added to storage since a most recent forecast, the new category of processed data comprising at least one of a new category of processed historical product data and a new category of processed historical location data; and
when selecting, by the processor, the machine learning model from the one or more machine learning models to make the forecast, the instructions that when executed by the computer, cause the computer to:
train, by the processor, the plurality of machine learning models on the first portion of the expanded data set, the expanded data set comprising the new category of processed data;
validate, by the processor, the machine learning model on a second portion of the expanded data set; and
retrain, by the processor, the machine learning model on the sum total of the first portion and the second portion.
20 . The computer-readable storage medium of claim 17 , wherein:
the forecast request is not the first request;
the data set is an expanded data set;
an additional amount of processed data has been added to storage since a most recent forecast, the additional amount of processed data comprising at least one of new processed historical product data and new processed historical location data;
the additional amount of processed data exceeds a threshold; and
when selecting, by the processor, the machine learning model from the one or more machine learning models to make the forecast, the instructions that when executed by the computer, cause the computer to:
train, by the processor, the plurality of machine learning models on the first portion of the expanded data set, the expanded data set comprising the additional amount of processed data;
validate, by the processor, the machine learning model on the second portion of the expanded data set; and
retrain, by the processor, the machine learning model on the sum of the first portion and the second portion.
21 . The computer-readable storage medium of claim 17 , wherein:
the forecast request is not a first request;
the data set is an expanded data set; and
the instructions that when executed by the computer, cause the computer to:
evaluate, by the processor, a forecast accuracy of the forecast against incoming processed historical product data; and
select, by the processor, the machine learning model if the forecast accuracy falls below a threshold, comprises:
train, by the processor, the plurality of machine learning models on the first portion of the expanded data set, the expanded data set comprising the incoming processed historical product data;
validate, by the processor, the machine learning model on the second portion of the expanded data set; and
retrain, by the processor, the machine learning model on the sum total of the first portion and the second portion.
22 . The computer-readable storage medium of claim 17 , wherein:
the forecast request is not the first request;
the data set is an expanded data set; and
the instructions that when executed by the computer, cause the computer to:
evaluate, by the processor, a time interval between a most recent forecast and the request; and
retrain the previously selected machine learning model if the time interval exceeds a threshold, comprising:
retrain, by the processor, the previously-selected machine learning model on the expanded data set comprising new processed data collected during the time interval.
23 . The computer-readable storage medium of claim 17 , wherein when training the one or more models, the instructions that when executed by the computer, cause the computer to:
train, by the processor, one or more configurations of a model of the one or more models.
24 . The computer-readable storage medium of claim 23 , a configuration of the one or more configurations comprises a number of layers in a neural network of the model.