Time Series Forecasting

The system addresses the challenges of non-stationarity and uncertainty in time series forecasting by simultaneously training and selecting optimal models for multiple predictions, enhancing accuracy and efficiency in time series forecasting.

JP7825681B2Active Publication Date: 2026-03-06GOOGLE LLC
View PDF 8 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-09-11
Publication Date
2026-03-06

AI Technical Summary

Technical Problem

Existing time series forecasting methods face challenges due to inherent non-stationarity and uncertainty, making it difficult to accurately predict future trends, especially when deploying static models, and there is a need for efficient methods to handle multiple time series predictions simultaneously.

Method used

A system that allows users to perform multiple time series predictions in parallel by simultaneously training and selecting the best-fit models for each prediction, using techniques like ARIMA models, hyperparameter tuning, and Akaike Information Criterion to determine the optimal model, and incorporating seasonal and holiday effects.

Benefits of technology

Enables efficient and accurate simultaneous forecasting of multiple time series predictions, reducing response time and improving prediction accuracy by dynamically adapting to new data points.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007825681000001
    Figure 0007825681000001
  • Figure 0007825681000002
    Figure 0007825681000002
  • Figure 0007825681000003
    Figure 0007825681000003
Patent Text Reader

Abstract

To accurately predict a future tendency.SOLUTION: A method for time series predictions includes receiving a time series prediction query (20) for requesting data processing hardware (144) to execute a plurality of time series predictions (22) from a user (12). Each time series prediction is a prediction of future data (162) based on respective current data (152). Also, the method includes training a plurality of models (212) about the respective time series predictions about each time series prediction of the plurality of time series prediction requested by the time series prediction query. Further, the method includes determining whether which model among the plurality models is best suitable for the respective time series predictions, and predicting future data about the determined bast suitable model and respective current data to return the predicted future data to the user about each of the plurality of time series predictions requested by the time series prediction query.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to time series prediction. [Background technology]

[0002] background Predicting future trends based on historical data can provide useful information for a number of different applications. The need for accurate prediction of future trends is increasing as vast amounts of data become readily available and users seek to leverage accurate predictions to gain a competitive advantage. When predicting future data trends, several underlying components can influence the variability of the data. These variability can make accurately predicting the time component very difficult. Many machine learning models aim to accurately predict future trends that incorporate the time component. Summary of the Invention

[0003] overview One aspect of the present disclosure provides a method for time series prediction. The method includes receiving, at data processing hardware, a time series prediction query from a user. The time series prediction query requests the data processing hardware to perform multiple time series predictions. Each time series prediction is a prediction of future data based on respective current data. For each time series prediction of the multiple time series predictions requested by the time series prediction query, the method includes the data processing hardware simultaneously training multiple models for the respective time series prediction. The method also includes simultaneously determining which model of the multiple models best fits the respective time series prediction, and simultaneously predicting future data based on the determined best-fit model and the respective current data. The method also includes the data processing hardware returning predicted future data to the user for each of the multiple time series predictions requested by the time series prediction query.

[0004] Implementations of the present disclosure may include one or more of the following optional features: In some implementations, the time series prediction request includes only a single query. In these implementations, the single query may include a Structured Query Language (SQL) query. Additionally or alternatively, the single query also includes a reference to three columns of a table. In some examples, the three columns of the table include a first column containing timestamp data, a second column containing current data, and a third column containing time series prediction identification data.

[0005] In some implementations, each model of the plurality of models for each respective time series forecast includes an autoregressive integrated moving average model. Training the plurality of models may include performing hyperparameter tuning. In some examples, forecasting the future data includes modeling seasonal effects. Optionally, forecasting the future data includes modeling holiday effects. In additional examples, forecasting the future data includes modeling drift. In some implementations, forecasting the future data includes performing anomaly detection. In some examples, determining which model of the plurality of models best fits the respective time series forecast includes determining which model has the lowest Akaike Information Criterion (AIC).

[0006] Another aspect of the present disclosure provides a system for time series forecasting. The system includes data processing hardware and memory hardware in communication with the data processing hardware. The memory hardware, when executed on the data processing hardware, stores data stored in the data processing hardware. The system stores instructions for causing the data processing hardware to perform operations. The operations include receiving a time series prediction query from a user. The time series prediction query requests the data processing hardware to perform multiple time series predictions. Each time series prediction is a prediction of future data based on respective current data. For each time series prediction of the multiple time series predictions requested by the time series prediction query, the operations include simultaneously training multiple models for the respective time series prediction. The operations also include simultaneously determining which model among the multiple models best fits the respective time series prediction and simultaneously predicting future data based on the determined best-fit model and the respective current data. The operations also include returning predicted future data to the user for each of the multiple time series predictions requested by the time series prediction query.

[0007] Implementations of the present disclosure may include one or more of the following optional features: In some implementations, the time series prediction request includes only a single query. In these implementations, the single query may include a Structured Query Language (SQL) query. Additionally or alternatively, the single query also includes a reference to three columns of a table. In some examples, the three columns of the table include a first column containing timestamp data, a second column containing current data, and a third column containing time series prediction identification data.

[0008] In some implementations, each model of the plurality of models for each respective time series forecast includes an autoregressive integrated moving average model. Training the plurality of models may include performing hyperparameter tuning. In some examples, forecasting future data includes modeling seasonal effects. Optionally, forecasting future data may include modeling holiday effects. In additional examples, forecasting future data includes modeling drift. In some implementations, forecasting future data includes performing anomaly detection. In some examples, determining which model of the plurality of models best fits the respective time series forecast includes determining which model has the lowest Akaike Information Criterion (AIC).

[0009] The details of one or more implementations of the disclosure are set forth in the accompanying drawings and the description below. Other aspects, features, and advantages will become apparent from the description and drawings, and from the claims. [Brief explanation of the drawings]

[0010] [Figure 1] FIG. 1 is a schematic diagram of an example system for generating time series forecasts. [Figure 2] FIG. 2 is a schematic diagram of exemplary components of the system of FIG. 1. [Figure 3] FIG. 10 is a schematic diagram of a table including a time series identification column. [Figure 4] 1 is a plot of a time series and the corresponding decomposition components of the time series. [Figure 5] FIG. 2 is a schematic diagram of additional exemplary components of the exemplary system of FIG. 1. [Figure 6] 1 is a flowchart of an exemplary arrangement of operations for a method of generating a time series forecast. [Figure 7] FIG. 1 is a schematic diagram of an example computing device that can be used to implement the systems and methods described herein. DETAILED DESCRIPTION OF THE INVENTION

[0011] Like reference symbols in the various drawings indicate like elements. Detailed Description A time series is a sequence of data points in time order (typically at regular intervals). Analysis on time series can be applied to any variable that changes over time (e.g., industrial processes or business metrics). Time series forecasting is the practice of predicting (i.e., extrapolating) future data values ​​based on past data values. Since so many forecasting problems have a time component, time series forecasting is a valuable tool for forecasting future data values. Series forecasting is an active area of ​​interest. Specifically, time series forecasting has become an important area for machine learning. However, due to inherent non-stationarity and uncertainty, time series forecasting remains a challenging problem.

[0012] In a typical machine learning problem, a model is trained until it provides satisfactory results. The model is then used to make predictions on new data over a period of time until there is enough new data to warrant retraining the model with additional new data. However, in time series forecasting, it may be beneficial to retrain the model even when a single new data point is received. From a practical perspective, deploying a static model (as is traditional with many machine learning models) is ineffective for time series forecasting.

[0013] Implementations herein are directed to a time series prediction system capable of performing "large-scale" time series predictions. That is, the system allows a user to fit and forecast many time series in parallel by submitting a single query. The system receives time series prediction requests from a user requesting that the system perform multiple time series predictions. For each of the multiple time series predictions, the system simultaneously trains multiple models and determines which model among the multiple models best fits the respective time series prediction. The system forecasts future data based on each of the determined best-fit models and returns the predicted future data to the user for each requested time series prediction.

[0014] 1 , in some implementations, an exemplary time series forecasting system 100 includes a remote system 140 that communicates with one or more user devices 10 via a network 112. The remote system 140 may be a single computer, multiple computers, or a distributed system (e.g., a cloud environment) having scalable / elastic resources 142, including computing resources 144 (e.g., data processing hardware) and / or storage resources 146 (e.g., memory hardware). A data store 150 (i.e., a remote storage device) may be overlaid on the storage resources 146 to enable scalable use of the storage resources 146 by one or more of the clients (e.g., user devices 10) or computing resources 144. The data store 150 is configured to store multiple data blocks 152, 152a-n in one or more tables 158, 158a-n (i.e., a cloud database), each including multiple rows and columns 300, 300a-n ( FIG. 3 ). Data store 150 may store any number of tables 158 at any time.

[0015] The remote system 140 is configured to receive time series prediction queries 20 from user devices 10 associated with respective users 12, e.g., via the network 112. The user devices 10 may correspond to any computing device, such as a desktop workstation, a laptop workstation, or a mobile device (i.e., a smartphone). The user devices 10 include computing resources 18 (e.g., data processing hardware) and / or storage resources 16 (e.g., memory hardware). The users 12 may construct queries 20 using a Structured Query Language (SQL) interface 14. Each time series prediction query 20 requests one or more time series predictions 22, 22a-n. Specifically, each time series prediction 22 requested by a query 20 is associated with a request to the remote system 140 to generate a prediction of future data 162 based on current data 152.

[0016] The remote system 140 runs a time series predictor 160 to predict future data 162 and return it to the user device 10. The time series predictor 160 is configured to receive the query 20. As described in more detail below, the model trainer 210 simultaneously generates and trains multiple predictive models 212, 212a-n for each prediction request 22. As used herein, the terms prediction request 22 and time series prediction 22 may be used interchangeably. The model trainer 210 may train the predictive model 212 with current data 152 (i.e., data blocks 152) retrieved from one or more tables 158 stored in the data store 150 that are associated with the requested time series prediction 22. That is, a query 20 may include multiple time series predictions 22, each requesting the remote system 140 to predict future data based on current data 152 located in one or more tables 158 stored in the data store 150. Alternatively, the query 20 may include current data 152. That is, the user 12 (via the user device 10) may provide current data 152 if the current data 152 is not available via the data storage 150.

[0017] The model trainer 210 may generate and / or train each model 212 using different parameters. For example, the model trainer 210 may generate and train multiple autoregressive integrated moving average (ARIMA) models with different orders of the autoregressive model (i.e., the number of time lags, commonly represented as parameter p), different differencing degrees (i.e., the number of times data is subtracted from past values, commonly represented as parameter d), and orders of the moving average model (i.e., the size of the moving average window, commonly represented as parameter q). Using combinations of different parameters (e.g., parameters p, d, and q), the model trainer 210 generates a corresponding predictive model 212 for each combination. Each model 212 is trained using the same data 152. One or more parameters may be configurable or partially configurable by the user 12.

[0018] The model trainer 210 may perform hyperparameter tuning (also known as hyperparameter optimization) when generating and training the multiple models 212. Hyperparameters are parameters that control or adjust the actual learning process while other parameters (e.g., node weights) are being learned. For example, the model trainer 210 may perform hyperparameter tuning on data frequency and non-seasonal order parameters. As described in more detail below, the model trainer 210 may generate and train predictive models 212 that may model many different aspects of time series. For example, the predictive models 212 may consider seasonal effects, holiday effects, drift modeling, and anomalies.

[0019] The model selector 220 receives each trained model 212 and determines which model 212 best fits the data 152. Typically, machine learning models are trained on a training dataset and then evaluated on a test dataset. However, because time series data often have very limited datasets, the time series predictor 160 may use the same data to train and evaluate the model 212 (i.e., predict future data 162). Thus, in some examples, the model selector 220 determines which model 212 yields the lowest Akaike Information Criterion (AIC). The AIC is an estimator of out-of-sample prediction error and may therefore represent the relative quality of the corresponding model 212 relative to each other model 212 trained on the same data 152. The model selector 220 selects the best-fitting model 212S (e.g., the model 212 with the lowest AIC) and sends the model 212S to the predictor 230. This allows the model selector 220 to analytically determine the best-fit model 212 without resorting to empirical means (eg, a separate testing data set).

[0020] The predictor 230 uses the selected model 212S to predict future data 162 based on the current data 152. The predictor 230 returns the predicted future data 162 to the user 12 (via the user device 10). The user device 10 displays the predicted data 162, for example, as a graph. Each time series requested by the query 20 may be displayed on the same graph, with user-configurable filters to control which portions of which time series are displayed. For example, the query 20 includes a request for 10 time series predictions 22. After receiving the future data 162, the user device 10 may display all 10 time series predictions simultaneously on the graph. The user may select which time series are available for viewing and zoom in or out on the data as desired.

[0021] Referring now to FIG. 2 , in some examples, a query 20 requests the remote system 140 to perform multiple time series predictions 22. In this case, the model trainer 210 simultaneously trains multiple models 212 for each of the multiple time series predictions 22. For example, if a query 20 includes 10 time series predictions 22 and the model trainer 210 trains 40 models 212 for each time series prediction 22, the model trainer 210 simultaneously generates and trains 400 (i.e., 40×10) models 212. As shown in FIG. 2 , the time series predictor 160 may replicate the model trainer 210 for each time series prediction 22 requested by the query 20 (i.e., 10 replicates of the model trainer 210 for the 10 prediction requests 22). The model selector 220 similarly simultaneously (e.g., via replication) determines the best-fit model 212S for the corresponding prediction request 22 from each set of models 212. The predictor 230 may also simultaneously (e.g., via replication) predict future data 162 based on each of the selected models 212S. The predicted future data 162 from each of the selected models 212S may be included in a query response 164 returned to the user 12 via the user device 10. Thus, the user 12 may request multiple time series predictions 22 with only a single query 20, and the time series predictor 160 processes each of the time series predictions 22 in parallel, significantly reducing the amount of time required to respond to the query 20.

[0022] 3, in some implementations, the query 20 includes references to three columns 300, 300a-c, of a table 158 stored in the data store 150. For example, one column 300a includes time series identification information, another column 300b includes time series timestamp data, and a third column 300c includes time series data. The time series timestamp column 300b includes the necessary temporal components of the time series. Each data element 310 in the time series timestamp column 300b represents a point in time associated with a respective time series data element 310 from the time series data column 300c. The time series predictor 160 uses the time series timestamp column 300b and the time series data column 300c to train a predictive model 212 and predict future data 162.

[0023] In some examples, the time series timestamp column 300b and the time series data column 300c are associated with a time series identification (ID) column 300a. The time series ID column 300a identifies which portions of the time series timestamp column 300b and the time series data column 300c correspond to each of the multiple time series predictions 22 requested by the query 20. In other words, the time series ID column 300a distinguishes between the time series timestamp column 300b and the time series data column 300c based on the multiple time series predictions 22 requested by the query 20.

[0024] In the illustrated example, a time series ID of "ID1" distinguishes between a series of timestamps and data elements 310. Each timestamp and data element 310 associated with the time series ID "ID1" corresponds to one of the time series predictions 22 requested by the query 20. Similarly, a time series ID of "ID2" distinguishes between a series of timestamps and data elements 310 for a second time series data request 22, and a time series ID of "ID3" distinguishes between a series of timestamps and data elements 310 for a second time series data request 22. The time series ID column 300a partitions the series of timestamps and data elements 310 for the three time series. In this manner, the time series ID column 300a identifies the boundaries of each of the separate time series predictions 22 requested by the query 20. Accordingly, to identify multiple requested time series predictions 22 within a single query 20, the user 12 may generate a single query (e.g., using the SQL interface 14) that provides identifiers for three columns 300 of the table 158 stored on the data store 150, corresponding to the time series ID column 300a, the time series timestamp column 300b, and the time series data column 300c.

[0025] While FIG. 3 illustrates an explicit identifying column 300a to provide a clear example, any column 300 in a table may serve as the time series identifying column 300a. For example, a table 158 containing data representing metrics for multiple different offices may use an office location column as the time series identifying column 300a to generate multiple time series forecasts 22 for each office location. As another example, a table 158 containing data representing weather statistics for different countries may use a column representing country as the time series identifying column 300a to generate multiple time series forecasts 22 for each country. That is, a user 12 may generate multiple time series forecasts 22 based on any existing column 300 in a table 158 without having to explicitly create a column 300 for the purpose of segmenting the desired time series.

[0026] Referring now to FIG. 4, a plot 400 illustrates an example time series 410 and its corresponding components 412a-c. The time series 410 includes a series of data points (y-axis) versus time (x-axis). Here, data is represented on the y-axis between approximately 60 and 140, and the x-axis ranges from approximately 1995 to 2015. The time series 410 is decomposed into a trend component 412a, a seasonal component 412b, and a residual component 412c. The trend component 412a represents the trend of the data, which moves up and down in a reasonably predictable pattern. Here, the trend component 412a also includes cyclical fluctuations corresponding to cycles (e.g., "boom-bust" cycles). The seasonal component 412b represents fluctuations that recur over a specific period (e.g., day, week, month, etc.). For example, an increase in sales in December represents the seasonal effect of the seasonal component 412b. Residual component 412c represents seemingly random residual fluctuations that do not fall into the classification of other components 412.

[0027] 5, in some examples, an end-to-end time series predictor 500 receives multiple input time series 502 (e.g., comprised of data 152 stored in data store 150). The end-to-end time series predictor 500 may include three main stages: a preprocessing stage 510, a training stage 520, and a prediction stage 530. The preprocessing stage 510 receives the input time series 502 and performs data frequency processing 512, null imputation 514 (i.e., determining and / or rejecting any nulls in the input time series 502), holiday effect modeling 516, and anomaly detection 518.

[0028] Holiday effects may play an important role in time series forecasting. For example, a time series representing sales of an online retailer may experience a significant spike in sales on "Black Friday." However, Black Friday does not have a fixed periodicity because it falls on the fourth Thursday in November, the day after Thanksgiving. Therefore, the effect is difficult, if not impossible, to account for in seasonality modeling. Additionally, holiday effects may be mistaken for anomalies, which can lead to undesired smoothing of the holiday effect. The holiday effect modeling module 516 accounts for these effects that would otherwise be missed by seasonality modeling or incorrectly smoothed by anomaly detection.

[0029] After preprocessing, the training stage 520 begins with seasonal and trend decomposition using a Stochastic Local Regression (STL) module 522 that generates deseasonal and seasonal components 523a and 523b. The STL module 522 estimates nonlinear relationships and decomposes the time series into multiple components 412a-c ( The seasonal component 523a is processed through a Kwiatkowsi-Phillips-Schmidt-Shin (KPSS) testing module 524, generating multiple ARIMA models in parallel at 526. The seasonal component 523b is passed to a double exponential smoothing module 528. In a forecasting stage 530, the deseasonal component 523a from the ARIMA model is forecasted by a forecasting module 532a, and the seasonal component 523b from the double exponential smoothing module 528 is forecast by a forecasting module 532b. The results from both forecasting modules 532a and 532b are combined to create a forecast result 534. The predictor 500 may return the forecast result 534 to the user 12 via the user device 10. The end-to-end time series predictor 500 replicates stages 510, 520, 530 for each input time series 502 so that each input time series 502 is predicted simultaneously in parallel.

[0030] 6 is a flowchart of an exemplary arrangement of operations for a method 600 for performing time series predictions. The method 600 includes, at operation 602, receiving, at data processing hardware 144, a time series prediction query 20 from a user 12 requesting the data processing hardware 144 to perform multiple time series predictions 22. Each time series prediction 22 is a prediction of future data 162 based on respective current data 152.

[0031] For each time series prediction 22 of the plurality of time series predictions 22, the method 600 includes, at operation 604, the data processing hardware 144 simultaneously training multiple models 212 for each time series prediction 22 of the plurality of time series predictions 22. At operation 606, the method 600 includes the data processing hardware 144 simultaneously determining which model 212S of the plurality of models 212 best fits each time series prediction 22 of the plurality of time series predictions 22. At operation 608, the method 600 includes the data processing hardware 144 simultaneously predicting future data 162 based on the determined best-fit model 212S and each current data 152. At operation 610, the method 600 includes the data processing hardware 144 returning the predicted future data 162 to the user 12 for each of the plurality of time series predictions 22 requested by the time series prediction query 20.

[0032] 7 is a schematic diagram of an exemplary computing device 700 that may be used to implement the systems and methods described herein. Computing device 700 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers. The components, their connections and relationships, and their functionality shown herein are exemplary only and do not limit the implementation of the invention as described and / or claimed herein.

[0033] Computing device 700 includes a processor 710, memory 720, storage device 730, a high-speed interface / controller 740 that connects to memory 720 and high-speed expansion port 750, and a low-speed interface / controller 760 that connects to low-speed bus 770 and storage device 730. Each of components 710, 720, 730, 740, 750, and 760 are interconnected using various buses and may be implemented on a common motherboard or in other manners as desired. Processor 710 can process instructions for execution within computing device 700, including instructions stored in memory 720 or storage device 730, to display graphical information for a graphical user interface (GUI) on an external input / output device, such as a display 780 coupled to high-speed interface 740. In other implementations, multiple processors and / or multiple buses may be used, along with multiple memories and memory types as desired. Multiple computing devices 700 may also be connected, each device being configured to operate independently (e.g., as a server bank). The SAN provides the necessary operational parts (as a group of blade servers or as a multiprocessor system).

[0034] Memory 720 stores information non-transiently within computing device 700. Memory 720 may be a computer-readable medium, a volatile memory unit, or a non-volatile memory unit. Non-transient memory 720 may be a physical device used to temporarily or permanently store programs (e.g., sequences of instructions) or data (e.g., program state information) for use by computing device 700. Examples of non-volatile memory include, but are not limited to, flash memory and read-only memory (ROM) / programmable read-only memory (PROM) / erasable programmable read-only memory (EPROM) / electronically erasable programmable read-only memory (EEPROM) (e.g., typically used for firmware such as boot programs). Examples of volatile memory include, but are not limited to, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), phase change memory (PCM), and disk or tape.

[0035] The storage device 730 can provide mass storage for the computing device 700. In some implementations, the storage device 730 is a computer-readable medium. In various different implementations, the storage device 730 may be a floppy disk device, a hard disk device, an optical disk device, or an array of devices including a tape device, a flash memory or other similar solid-state memory device, or devices in a storage area network or other configuration. In further implementations, a computer program product is tangibly embodied in an information carrier. The computer program product includes instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer-readable or machine-readable medium, such as the memory 720, the storage device 730, or memory on the processor 710.

[0036] The high-speed controller 740 manages bandwidth-intensive operations for the computing device 700, and the low-speed controller 760 manages less bandwidth-intensive operations. Such role assignments are merely exemplary. In some implementations, the high-speed controller 740 is coupled to memory 720, a display 780 (e.g., through a graphics processor or accelerator), and a high-speed expansion port 750 that may accept various expansion cards (not shown). In some implementations, the low-speed controller 760 is coupled to a storage device 730 and a low-speed expansion port 790. The low-speed expansion port 790 may accept various communication ports (e.g., USB, Bluetooth, Ethernet, etc.). .net, wireless Ethernet), and may be coupled, for example via a network adapter, to one or more input / output devices such as a keyboard, pointing device, scanner, or networking device such as a switch or router.

[0037] Computing device 700 may be implemented in several different forms, as shown in the figure, such as a standard server 700a, or multiple times within a group of such servers 700a, as a laptop computer 700b, or as part of a rack server system 700c.

[0038] Various implementations of the systems and techniques described herein may be implemented using digital electronic and / or optical circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or other similar components. These various implementations may include implementation in one or more computer programs executable and / or interpretable on a programmable system including at least one programmable processor, which may be special purpose or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.

[0039] A software application (i.e., a software resource) may refer to computer software that causes a computing device to perform a task. In some examples, a software application may be referred to as an "application," an "app," or a "program." Examples of applications include, but are not limited to, system diagnostic applications, system management applications, system maintenance applications, word processing applications, spreadsheet applications, messaging applications, media streaming applications, social networking applications, and gaming applications.

[0040] These computer programs (also known as programs, software, software applications, or code) include machine instructions for a programmable processor and may be implemented in high-level procedural and / or object-oriented programming languages ​​and / or assembly / machine languages. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, non-transitory computer-readable medium, apparatus, and / or device (e.g., magnetic disk, optical disk, memory, programmable logic device (PLD)) used to provide machine instructions and / or data to a programmable processor, including machine-readable media that receive machine instructions as machine-readable signals. The term "machine-readable signal" refers to any signal used to provide machine instructions and / or data to a programmable processor.

[0041] The processes and logic flows described herein may be performed by one or more programmable processors, also referred to as data processing hardware, that execute one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by special purpose logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). Processors suitable for executing computer programs include, by way of example, both general-purpose and special-purpose microprocessors, as well as any one or more processors of any type of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random-access memory, or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices for storing data, such as magnetic, magneto-optical, or optical disks, or be operatively coupled to receive data from or transfer data to the one or more mass storage devices, or both. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include, by way of example, all forms of non-volatile memory, media, and memory devices, including semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0042] To provide for user interaction, one or more aspects of the present disclosure may be implemented on a computer having a display device, such as a CRT (cathode ray tube), LCD (liquid crystal display) monitor, or touchscreen, for displaying information to a user, and optionally a keyboard and pointing device, such as a mouse or trackball, by which a user can provide input to the computer. Other types of devices may also be used to provide for user interaction; for example, feedback provided to the user may be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback, and input from the user may be received in any form, including acoustic input, voice input, or tactile input. Additionally, a computer may interact with a user by sending documents to and receiving documents from a device used by the user, for example, by sending a web page to a web browser on the user's client device in response to a request received from the web browser.

[0043] Although several implementations have been described, it will be understood that various modifications may be made without departing from the spirit and scope of the present disclosure. Accordingly, other implementations are within the scope of the following claims.

Claims

1. A computer-implemented method that, when executed by data processing hardware, causes the data processing hardware to perform operations, the operations comprising: receiving a time series prediction query requesting a time series prediction, the time series prediction including a prediction of future data based on current data, the operations further comprising: training a plurality of machine learning models for the time series forecasting using parameters of the moving average model; each respective machine learning model of the plurality of models is trained on the same data block of the current data using a different combination of parameters of the moving average model; Each machine learning model of the plurality of machine learning models is trained to predict the time series forecast based on the same data block of the current data, and the operations further include: For each respective model of the plurality of machine learning models, determining a respective prediction error for the respective machine learning model using the current data; selecting a single machine learning model from the plurality of machine learning models that best fits the respective time series forecast using the respective prediction errors of each respective machine learning model; predicting the future data based on the selected best-fitting machine learning model and the current data; and and returning the predicted future data for the time series predictions requested by the time series prediction query.

2. 10. The method of claim 1, wherein the operations further comprise using the respective prediction errors of each respective machine learning model without recourse to empirical means.

3. The method of claim 1 or 2, wherein the time series forecast query comprises a Structured Query Language (SQL) query.

4. The method of any one of claims 1 to 3, wherein the time series forecast query includes references to three columns of a table.

5. The three columns of the table are: a first column containing timestamp data; a second column containing the current data; and a third column containing time series forecast identification data.

6. The method of any one of claims 1 to 5, wherein each machine learning model of the plurality of machine learning models comprises an autoregressive integrated moving average model.

7. The method of claim 6 , wherein training the plurality of machine learning models comprises performing hyperparameter tuning.

8. The method of any one of claims 1 to 7, wherein forecasting future data includes modeling seasonal effects.

9. The method of any one of claims 1 to 8, wherein predicting future data comprises modeling drift.

10. 10. The method of claim 1, wherein selecting the single machine learning model from the plurality of machine learning models that best fits the respective time series forecast comprises determining which machine learning model has the lowest Akaike Information Criterion (AIC).

11. 1. A system comprising: data processing hardware; memory hardware in communication with the data processing hardware, the memory hardware storing instructions that, when executed on the data processing hardware, cause the data processing hardware to perform operations, the operations including: receiving a time series prediction query requesting a time series prediction, the time series prediction including a prediction of future data based on current data, the operations further comprising: training a plurality of machine learning models for the time series forecasting using parameters of the moving average model; each respective machine learning model of the plurality of models is trained on the same data block of the current data using a different combination of parameters of the moving average model; Each machine learning model of the plurality of machine learning models is trained to predict the time series forecast based on the same data block of the current data, and the operations further include: For each respective model of the plurality of machine learning models, determining a respective prediction error for the respective machine learning model using the current data; selecting a single machine learning model from the plurality of machine learning models that best fits the respective time series forecast using the respective prediction errors of each respective machine learning model; predicting the future data based on the selected best-fitting machine learning model and the current data; and and returning the predicted future data for the time series prediction requested by the time series prediction query.

12. 12. The system of claim 11, wherein the operations further comprise using the respective prediction errors of each respective machine learning model without recourse to empirical means.

13. The system of claim 11 or 12, wherein the time series forecast query comprises a Structured Query Language (SQL) query.

14. The system of any one of claims 11 to 13, wherein the time series forecast query includes references to three columns of a table.

15. The three columns of the table are: a first column containing timestamp data; a second column containing the current data; and a third column containing time series forecast identification data.

16. The system of any one of claims 11 to 15, wherein each model of the plurality of machine learning models comprises an autoregressive integrated moving average model.

17. 17. The system of claim 16, wherein training the plurality of machine learning models comprises performing hyperparameter tuning.

18. The system of any one of claims 11 to 17, wherein predicting future data includes modeling seasonal effects.

19. The system of any one of claims 11 to 18, wherein predicting future data comprises modeling drift.

20. 20. The system of claim 11, wherein selecting the single machine learning model from the plurality of machine learning models that best fits the respective time series forecast comprises determining which machine learning model has the lowest Akaike Information Criterion (AIC).

Citation Information

Patent Citations

  • JP1974081976A

  • Inventory control system, inventory control method and program

    JP2016044029A

  • Prediction system, prediction method, and prediction program

    JP2016099738A

  • Collection of Measurements of Affective Response for Generation of Crowd-Based Results

    US20160300252A1

  • Predictive analytics with stream database

    US20170193371A1