The capacity to foresee the future would be an incredible superpower. At AWS, we can’t give you that, but we can help you use machine learning to forecast time series in a few steps.
The goal of time series forecasting is to predict future values of time-dependent data such as weekly sales, daily inventory levels, or hourly website traffic. Companies today use everything from simple spreadsheets to complex financial planning software to attempt to accurately forecast future business outcomes such as product demand, resource needs, or financial performance.
These tools build forecasts by looking at a historical series of data, which is called time series data. For example, such tools may try to predict the future sales of a raincoat by looking only at its previous sales data with the underlying assumption that the future is determined by the past.
This approach can struggle to produce accurate forecasts for large sets of data that have irregular trends. Also, it fails to easily combine data series that change over time (such as price, discounts, web traffic) with relevant independent variables like product features and store locations.
Introducing Amazon Forecast
Amazon has been solving time-series forecasting challenges across multiple areas including retail, supply chain, and server capacity for over two decades. Using machine learning techniques we have learned from this experience, today we are introducing Amazon Forecast, a fully managed deep learning service for time-series forecasting. Amazon Forecast packages our years of experience in building and operating scalable, highly accurate forecasting technology into an easy-to-use and fully-managed service.
You can use Amazon Forecast to generate predictions on time-series data to estimate:
- Operational metrics, such as web traffic to servers, AWS usage, or IoT sensor metrics.
- Business metrics, such as sales, profits, and expenses.
- Resource requirements, such as the quantity of energy or bandwidth needed to meet a specific demand.
- The amount of raw goods, services, or other inputs needed by a manufacturing process.
- Retail demand considering the impact of price discounts, marketing promotions, and other campaigns.
Amazon Forecast is designed with these three main benefits in minds:
- Accuracy, using deep neural nets and traditional statistical methods for forecasting. Amazon Forecast can learn from your data automatically and pick the best algorithms to train a model designed for your data. When you have many related time- series, forecasts made using the Amazon Forecast deep learning algorithms, such as DeepAR and MQ-RNN, tend to be more accurate than forecasts made with traditional methods, such as exponential smoothing.
- End-to-end management, automating the entire forecasting workflow from data upload to data processing, model training, dataset updates, and forecasting. Enterprise systems can directly consume your forecasts as an API.
- Usability, in the console you can look up and visualize forecasts for any time series at different granularities. You can also see metrics for the accuracy of your predictor’s forecasts. Developers with no machine learning expertise can use the Amazon Forecast APIs, AWS Command Line Interface (CLI), or the console to import training data into one or more Amazon Forecast datasets, train models, and deploy the models to generate forecasts.
Using Amazon Forecast
When creating forecasting projects in Amazon Forecast, you primarily work with the following resources:
- Dataset, to upload your data. Amazon Forecast algorithms use the datasets to train models.
- Dataset Group, a container for one or more datasets, to use multiple datasets for model training.
- Predictor, a result of training models. To create a predictor you provide a dataset group and a recipe (which provides an algorithm) or let Amazon Forecast decide which forecasting model works best. The algorithm trains a model using the data in the datasets.
- Forecast, using a predictor you can run inference to generate forecasts.
You can use Amazon Forecast with the AWS console, CLI and SDKs. For example, you can use the AWS SDK for Python to train a model or get a forecast in a Jupyter notebook, or the AWS SDK for Java to add forecasting capabilities to an existing business application.
Pricing and Availability
With Amazon Forecast, you pay only for what you use. There are three different types of costs in Amazon Forecast:
- Generated forecast: A forecast is a prediction of future values for a single variable over any time horizon. Forecasts are billed in units of 1,000 (rounded up to the nearest thousand).
- Data storage: Costs for each GB of data stored and used to train your models.
- Training hours: Costs for each hour of training required for a custom model based on data provided by customers.
As part of the AWS Free Tier, for the first two months after first using Amazon Forecast, you have no charge for:
- Generated forecasts: Up to 10K time series forecasts per month
- Data storage: Up to 10GB per month
- Training hours: Up to 10 hours per month
Amazon Forecast is available in preview in the following regions: US East (Northern Virginia), US West (Oregon).
It has never been so easy to do time-series forecasts with high accuracy. I really look forward to seeing what our customers are going to build with this!