A method, predictive analytics system, and computer program product for performing online and offline learning is provided. The system obtains a first function used to generate a prediction, where the first function was generated from a first set of training data. The system sets a second function as being equal to the first function. The system further collects during an interval a second set of training data. At the end of the interval, the predictive analytics system updates the first function based on the second set of training data. While the first function is being updated, a third set of training data is collected. The system updates the second function while the first function is being updated. The updating of the second function is based on the third set of training data, where the third set of training data is more recent than the second set of training data.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method of updating functions used for making predictions by a predictive analytics system, the method comprising: obtaining a first function used to generate a prediction of an output parameter from an input parameter, wherein the first function was generated from a first set of training data; setting a second function as being equal to the first function, wherein the second function is used for generating a prediction; collecting during an interval a second set of training data; at the end of the interval, updating the first function based on the second set of training data; and while the first function is being updated, collecting a third set of training data; and updating the second function while the first function is being updated, wherein the updating of the second function is based on the third set of training data, and wherein the third set of training data is more recent than the second set of training data. 2. The method of claim 1, further comprising setting the second function equal to the first function after the first function is updated. 3. The method of claim 1, further comprising: updating the second function during the interval; setting the first function as being equal to a snapshot of the second function at the end of the interval, wherein the first function is updated after being set equal to the snapshot of the second function. 4. The method of claim 1, wherein updating the first function comprises using an offline machine learning algorithm, and wherein updating the second function comprises using an online machine learning algorithm. 5. The method of claim 4, wherein updating the second function comprises performing a plurality of updates corresponding to different time instances, and wherein each of the plurality of updates is based on only a most recent value in the third set of training data. 6. The method of claim 4, wherein updating the second function comprises adding to the second function another function that is based on one or more most recent values in the third set of training data. 7. The method of claim 5, wherein the another function includes a multiplier that identifies a trend in the third set of training data. 8. The method of claim 1, wherein collecting the second set training data comprises: receiving a first value of training data during the interval; determining a first confidence value identifying a confidence with which the first function can predict an output value based on the received first value; determining whether the first confidence value is less than a second confidence value corresponding to a second value that is in the second set of training data; and in response to determining that the first confidence value is less than the second confidence value, replacing the second value with the first value in the second set of training data. 9. The method of claim 8, wherein the first function defines a boundary between one or more classes, and wherein determining the first confidence value comprises determining a distance between the first value and the boundary. 10. The method of claim 8, wherein the second confidence value that is compared with the first confidence value is a highest confidence value for values in the second set of training data. 11. The method of claim 1, wherein a duration of the interval is dynamically determined. 12. The method of claim 10, wherein the duration of the interval equals a time taken for a storage size of the collected set of values to equal or exceed a buffer size allocated on a storage device to store the collected set of values. 13. The method of claim 12, wherein the collecting of the second set of training data is performed by a plurality of processors, and wherein the allocated buffer size is shared by the plurality of processors. 14. The method of claim 1, wherein updating the first function comprises calculating values of parameters of a machine learning algorithm, and wherein the method further comprises: storing the values of the parameters in a storage device; and performing another update of the first function using the stored values. 15. A predictive analytics system comprising one or more processors configured to: obtain a first function used to generate a prediction of an output parameter from an input parameter, wherein the first function was generated from a first set of training data; set a second function as being equal to the first function, wherein the second function is used for generating a prediction; collect during an interval a second set of training data; at the end of the interval, update the first function based on the second set of training data; and while the first function is being updated, collect a third set of training data; and update the second function while the first function is being updated, wherein the updating of the second function is based on the third set of training data, and wherein the third set of training data is more recent than the second set of training data. 16. The system of claim 15, wherein the one or more processors are further configured to set the second function equal to the first function after the first function is updated. 17. The system of claim 15, wherein the one or more processors are further configured to: update the second function during the interval; set the first function as being equal to a snapshot of the second function at the end of the interval, wherein the first function is updated after being set equal to the snapshot of the second function. 18. The system of claim 15, wherein the one or more processors are configured to update the first function by using an offline machine learning algorithm, and to update the second function by using an online machine learning algorithm. 19. The system of claim 18, wherein the one or more processors are configured to update the second function by performing a plurality of updates corresponding to different time instances, and wherein each of the plurality of updates is based on only a most recent value in the third set of training data. 20. The system of claim 18, wherein the one or more processors are configured to update the second function by adding to the second function another function that is based on one or more most recent values in the third set of training data. 21. The system of claim 19, wherein the another function includes a multiplier that identifies a trend in the third set of training data. 22. The system of claim 15, wherein the one or more processors are configured to collect the second set training data by: receiving a first value of training data during the interval; determining a first confidence value identifying a confidence with which the first function can predict an output value based on the received first value; determining whether the first confidence value is less than a second confidence value corresponding to a second value that is in the second set of training data; and in response to determining that the first confidence value is less than the second confidence value, replacing the second value with the first value in the second set of training data. 23. The system of claim 22, wherein the first function defines a boundary between one or more classes, and wherein the one or more processors are configured to determine the first confidence value by determining a distance between the first value and the boundary. 24. The system of claim 22, wherein the second confidence value that is compared with the first confidence value is a highest confidence value for values in the second set of training data. 25. The system of claim 15, wherein a duration of the interval is dynamically determined. 26. The system of claim 24, wherein the duration of the interval equals a time taken for a storage size of the collected set of values to equal or exceed a buffer size allocated on a storage device to store the collected set of values. 27. The system of claim 26, wherein the collecting of the second set of training data is performed by a plurality of processors, and wherein the allocated buffer size is shared by the plurality of processors. 28. The system of claim 15, wherein the one or more processors are configured to update the first function by calculating values of parameters of a machine learning algorithm, and wherein the method further comprises: storing the values of the parameters in a storage device; and performing another update of the first function using the stored values.