Chronos: update Chronos quickstart from az to bigdl (#3324)
* fix anomaly detector qs * fix autoest notebook * add updates * add qs name * update logo * fix installation guide * fix typos
This commit is contained in:
parent
26c087d493
commit
ac96d9a35a
3 changed files with 35 additions and 35 deletions
|
|
@ -1,8 +1,8 @@
|
||||||
# Anomaly Detector
|
# Anomaly Detector Quickstart
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
[Run in Google Colab](https://colab.research.google.com/github/intel-analytics/analytics-zoo/blob/master/docs/docs/colab-notebook/chronos/chronos_minn_traffic_anomaly_detector.ipynb) [View source on GitHub](https://github.com/intel-analytics/analytics-zoo/blob/master/docs/docs/colab-notebook/chronos/chronos_minn_traffic_anomaly_detector.ipynb)
|
[Run in Google Colab](https://colab.research.google.com/github/intel-analytics/BigDL/blob/branch-2.0/python/chronos/colab-notebook/chronos_minn_traffic_anomaly_detector.ipynb) [View source on GitHub](https://github.com/intel-analytics/BigDL/blob/branch-2.0/python/chronos/colab-notebook/chronos_minn_traffic_anomaly_detector.ipynb)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -10,12 +10,12 @@
|
||||||
|
|
||||||
### Step 0: Prepare Environment
|
### Step 0: Prepare Environment
|
||||||
|
|
||||||
We recommend using [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/) to prepare the environment. Please refer to the [install guide](../../UserGuide/python.md) for more details.
|
We recommend using [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/) to prepare the environment. Please refer to the [install guide](../Overview/chronos.html#install) for more details.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
conda create -n zoo python=3.7 # "zoo" is conda environment name, you can use any name you like.
|
conda create -n my_env python=3.7 # "my_env" is conda environment name, you can use any name you like.
|
||||||
conda activate zoo
|
conda activate my_env
|
||||||
pip install analytics-zoo[automl] # install either version 0.10 or latest nightly build
|
pip install bigdl-chronos
|
||||||
```
|
```
|
||||||
|
|
||||||
## Step 1: Prepare dataset
|
## Step 1: Prepare dataset
|
||||||
|
|
@ -27,7 +27,7 @@ For the machine_usage data, the pre-processing contains 2 parts: <br>
|
||||||
2. Check missing values and handle missing data.
|
2. Check missing values and handle missing data.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from zoo.chronos.data import TSDataset
|
from bigdl.chronos.data import TSDataset
|
||||||
|
|
||||||
tsdata = TSDataset.from_pandas(df, dt_col="timestamp", target_col="value")
|
tsdata = TSDataset.from_pandas(df, dt_col="timestamp", target_col="value")
|
||||||
df = tsdata.resample("5min")\
|
df = tsdata.resample("5min")\
|
||||||
|
|
@ -36,10 +36,10 @@ df = tsdata.resample("5min")\
|
||||||
```
|
```
|
||||||
|
|
||||||
## Step 2: Use Chronos Anomaly Detector
|
## Step 2: Use Chronos Anomaly Detector
|
||||||
Chronos provides many anomaly detector for anomaly detection, here we use DBScan as an example. More anomaly detector can be found [here](https://analytics-zoo.readthedocs.io/en/latest/doc/PythonAPI/Chronos/anomaly_detectors.html).
|
Chronos provides many anomaly detector for anomaly detection, here we use DBScan as an example. More anomaly detector can be found [here](https://bigdl.readthedocs.io/en/latest/doc/PythonAPI/Chronos/anomaly_detectors.html).
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from zoo.chronos.detector.anomaly import DBScanDetector
|
from bigdl.chronos.detector.anomaly import DBScanDetector
|
||||||
|
|
||||||
ad = DBScanDetector(eps=0.3, min_samples=6)
|
ad = DBScanDetector(eps=0.3, min_samples=6)
|
||||||
ad.fit(df['value'].to_numpy())
|
ad.fit(df['value'].to_numpy())
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
# AutoTSEstimator
|
# AutoTSEstimator Quickstart
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
[Run in Google Colab](https://colab.research.google.com/github/intel-analytics/analytics-zoo/blob/master/docs/docs/colab-notebook/chronos/chronos_experimental_autots_nyc_taxi.ipynb) [View source on GitHub](https://github.com/intel-analytics/analytics-zoo/blob/master/docs/docs/colab-notebook/chronos/chronos_experimental_autots_nyc_taxi.ipynb)
|
[Run in Google Colab](https://colab.research.google.com/github/intel-analytics/BigDL/blob/branch-2.0/python/chronos/colab-notebook/chronos_autots_nyc_taxi.ipynb) [View source on GitHub](https://github.com/intel-analytics/BigDL/blob/branch-2.0/python/chronos/colab-notebook/chronos_autots_nyc_taxi.ipynb)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -12,16 +12,16 @@
|
||||||
|
|
||||||
Chronos provides `AutoTSEstimator` as a highly integrated solution for time series forecasting task with hyperparameter autotuning, auto feature selection and auto preprocessing. Users can prepare a `TSDataset`(recommended, used in this notebook) or their own data creator as input data. By constructing a `AutoTSEstimator` and calling `fit` on the data, a `TSPipeline` contains the best model and pre/post data processing will be returned for further development of deployment.
|
Chronos provides `AutoTSEstimator` as a highly integrated solution for time series forecasting task with hyperparameter autotuning, auto feature selection and auto preprocessing. Users can prepare a `TSDataset`(recommended, used in this notebook) or their own data creator as input data. By constructing a `AutoTSEstimator` and calling `fit` on the data, a `TSPipeline` contains the best model and pre/post data processing will be returned for further development of deployment.
|
||||||
|
|
||||||
`AutoTSEstimator` is experimental and only support LSTM, TCN, and Seq2seq model for now.
|
`AutoTSEstimator` only support LSTM, TCN, and Seq2seq built-in models and 3rd party models for now.
|
||||||
|
|
||||||
### **Step 0: Prepare Environment**
|
### **Step 0: Prepare Environment**
|
||||||
|
|
||||||
We recommend using [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/) to prepare the environment. Please refer to the [install guide](../../UserGuide/python.md) for more details.
|
We recommend using [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/) to prepare the environment. Please refer to the [install guide](../Overview/chronos.html#install) for more details.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
conda create -n zoo python=3.7
|
conda create -n my_env python=3.7
|
||||||
conda activate zoo
|
conda activate my_env
|
||||||
pip install --pre --upgrade analytics-zoo[automl]
|
pip install --pre --upgrade bigdl-chronos[all]
|
||||||
```
|
```
|
||||||
|
|
||||||
### **Step 1: Init Orca Context**
|
### **Step 1: Init Orca Context**
|
||||||
|
|
@ -40,7 +40,7 @@ This is the only place where you need to specify local or distributed mode. View
|
||||||
### **Step 2: Prepare a TSDataset**
|
### **Step 2: Prepare a TSDataset**
|
||||||
Prepare a `TSDataset` and call necessary operations on it.
|
Prepare a `TSDataset` and call necessary operations on it.
|
||||||
```python
|
```python
|
||||||
from zoo.chronos.data import TSDataset
|
from bigdl.chronos.data import TSDataset
|
||||||
from sklearn.preprocessing import StandardScaler
|
from sklearn.preprocessing import StandardScaler
|
||||||
|
|
||||||
tsdata_train, tsdata_val, tsdata_test\
|
tsdata_train, tsdata_val, tsdata_test\
|
||||||
|
|
@ -56,13 +56,13 @@ There is no need to call `.roll()` or `.to_torch_data_loader()` in this step, wh
|
||||||
|
|
||||||
Please call `.gen_dt_feature()`(recommended), `.gen_rolling_feature()`, and `gen_global_feature()` to generate all candidate features to be selected by `AutoTSEstimator` as well as your input extra feature.
|
Please call `.gen_dt_feature()`(recommended), `.gen_rolling_feature()`, and `gen_global_feature()` to generate all candidate features to be selected by `AutoTSEstimator` as well as your input extra feature.
|
||||||
|
|
||||||
Detailed information please refer to [TSDataset API doc](https://analytics-zoo.readthedocs.io/en/latest/doc/PythonAPI/Chronos/tsdataset.html#tsdataset) and [Time series data basic concepts](https://analytics-zoo.readthedocs.io/en/latest/doc/Chronos/Overview/chronos.html#data-processing-and-feature-engineering).
|
Detailed information please refer to [TSDataset API doc](https://bigdl.readthedocs.io/en/latest/doc/PythonAPI/Chronos/tsdataset.html) and [Time series data basic concepts](https://bigdl.readthedocs.io/en/latest/doc/Chronos/Overview/data_processing_feature_engineering.html).
|
||||||
|
|
||||||
### **Step 3: Create an AutoTSEstimator**
|
### **Step 3: Create an AutoTSEstimator**
|
||||||
|
|
||||||
```python
|
```python
|
||||||
import zoo.orca.automl.hp as hp
|
import bigdl.orca.automl.hp as hp
|
||||||
from zoo.chronos.autots import AutoTSEstimator
|
from bigdl.chronos.autots import AutoTSEstimator
|
||||||
auto_estimator = AutoTSEstimator(model='lstm', # the model name used for training
|
auto_estimator = AutoTSEstimator(model='lstm', # the model name used for training
|
||||||
search_space='normal', # a default hyper parameter search space
|
search_space='normal', # a default hyper parameter search space
|
||||||
past_seq_len=hp.randint(1, 10), # hp sampling function of past_seq_len for auto-tuning
|
past_seq_len=hp.randint(1, 10), # hp sampling function of past_seq_len for auto-tuning
|
||||||
|
|
@ -72,7 +72,7 @@ We prebuild three defualt search space for each build-in model, which you can us
|
||||||
|
|
||||||
`past_seq_len` can be set as a hp sample function, the proper range is highly related to your data. A range between 0.5 cycle and 3 cycle is reasonable.
|
`past_seq_len` can be set as a hp sample function, the proper range is highly related to your data. A range between 0.5 cycle and 3 cycle is reasonable.
|
||||||
|
|
||||||
Detailed information please refer to [AutoTSEstimator API doc](https://analytics-zoo.readthedocs.io/en/latest/doc/PythonAPI/Chronos/autotsestimator.html#id1) and some basic concepts [here](https://analytics-zoo.readthedocs.io/en/latest/doc/Orca/Overview/distributed-tuning.html#search-space-and-search-algorithms).
|
Detailed information please refer to [AutoTSEstimator API doc](https://bigdl.readthedocs.io/en/latest/doc/PythonAPI/Chronos/autotsestimator.html#autotsestimator) and basic concepts [here](https://bigdl.readthedocs.io/en/latest/doc/Chronos/Overview/forecasting.html#use-autots-pipeline).
|
||||||
|
|
||||||
### **Step 4: Fit with AutoTSEstimator**
|
### **Step 4: Fit with AutoTSEstimator**
|
||||||
```python
|
```python
|
||||||
|
|
@ -81,7 +81,7 @@ ts_pipeline = auto_estimator.fit(data=tsdata_train, # train dataset
|
||||||
validation_data=tsdata_val, # validation dataset
|
validation_data=tsdata_val, # validation dataset
|
||||||
epochs=5) # number of epochs to train in each trial
|
epochs=5) # number of epochs to train in each trial
|
||||||
```
|
```
|
||||||
Detailed information please refer to [AutoTSEstimator API doc](https://analytics-zoo.readthedocs.io/en/latest/doc/PythonAPI/Chronos/autotsestimator.html#id1).
|
Detailed information please refer to [AutoTSEstimator API doc](https://bigdl.readthedocs.io/en/latest/doc/PythonAPI/Chronos/autotsestimator.html#autotsestimator).
|
||||||
### **Step 5: Further deployment with TSPipeline**
|
### **Step 5: Further deployment with TSPipeline**
|
||||||
The `TSPipeline` will reply the same preprcessing and corresponding postprocessing operations on the test data. You may carry out predict, evaluate or save/load for further development.
|
The `TSPipeline` will reply the same preprcessing and corresponding postprocessing operations on the test data. You may carry out predict, evaluate or save/load for further development.
|
||||||
```python
|
```python
|
||||||
|
|
@ -101,10 +101,10 @@ print("Evaluate: the smape value is", smape)
|
||||||
my_ppl_file_path = "/tmp/saved_pipeline"
|
my_ppl_file_path = "/tmp/saved_pipeline"
|
||||||
ts_pipeline.save(my_ppl_file_path)
|
ts_pipeline.save(my_ppl_file_path)
|
||||||
# restore the pipeline for further deployment
|
# restore the pipeline for further deployment
|
||||||
from zoo.chronos.autots import TSPipeline
|
from bigdl.chronos.autots import TSPipeline
|
||||||
loaded_ppl = TSPipeline.load(my_ppl_file_path)
|
loaded_ppl = TSPipeline.load(my_ppl_file_path)
|
||||||
```
|
```
|
||||||
Detailed information please refer to [TSPipeline API doc](https://analytics-zoo.readthedocs.io/en/latest/doc/PythonAPI/Chronos/autotsestimator.html#tspipeline-experimental).
|
Detailed information please refer to [TSPipeline API doc](https://bigdl.readthedocs.io/en/latest/doc/PythonAPI/Chronos/tsdataset.html).
|
||||||
|
|
||||||
### **Optional: Examine the leaderboard visualization**
|
### **Optional: Examine the leaderboard visualization**
|
||||||
To view the evaluation result of "not chosen" trails and find some insight or even possibly improve you search space for a new autotuning task. We provide a leaderboard through tensorboard.
|
To view the evaluation result of "not chosen" trails and find some insight or even possibly improve you search space for a new autotuning task. We provide a leaderboard through tensorboard.
|
||||||
|
|
@ -113,4 +113,4 @@ To view the evaluation result of "not chosen" trails and find some insight or ev
|
||||||
%load_ext tensorboard
|
%load_ext tensorboard
|
||||||
%tensorboard --logdir /tmp/autots_estimator/autots_estimator_leaderboard/
|
%tensorboard --logdir /tmp/autots_estimator/autots_estimator_leaderboard/
|
||||||
```
|
```
|
||||||
Detailed information please refer to [Visualization](https://analytics-zoo.readthedocs.io/en/latest/doc/Chronos/Overview/chronos.html#Visualization).
|
Detailed information please refer to [Visualization](https://bigdl.readthedocs.io/en/latest/doc/Chronos/Overview/useful_functionalities.html#automl-visualization).
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
# TSDataset and Forecaster
|
# TSDataset and Forecaster Quickstarts
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
[Run in Google Colab](https://colab.research.google.com/github/intel-analytics/analytics-zoo/blob/master/docs/docs/colab-notebook/chronos/chronos_nyc_taxi_tsdataset_forecaster.ipynb) [View source on GitHub](https://github.com/intel-analytics/analytics-zoo/blob/master/docs/docs/colab-notebook/chronos/chronos_nyc_taxi_tsdataset_forecaster.ipynb)
|
[Run in Google Colab](https://colab.research.google.com/github/intel-analytics/BigDL/blob/branch-2.0/python/chronos/colab-notebook/chronos_nyc_taxi_tsdataset_forecaster.ipynb) [View source on GitHub](https://github.com/intel-analytics/BigDL/blob/branch-2.0/python/chronos/colab-notebook/chronos_nyc_taxi_tsdataset_forecaster.ipynb)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -10,22 +10,22 @@
|
||||||
|
|
||||||
### **Step 0: Prepare Environment**
|
### **Step 0: Prepare Environment**
|
||||||
|
|
||||||
We recommend using [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/) to prepare the environment. Please refer to the [install guide](../../UserGuide/python.md) for more details.
|
We recommend using [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/) to prepare the environment. Please refer to the [install guide](../Overview/chronos.html#install) for more details.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
conda create -n zoo python=3.7 # "zoo" is conda environment name, you can use any name you like.
|
conda create -n my_env python=3.7 # "my_env" is conda environment name, you can use any name you like.
|
||||||
conda activate zoo
|
conda activate my_env
|
||||||
pip install analytics-zoo[automl] # install latest nightly build
|
pip install bigdl-chronos[all]
|
||||||
```
|
```
|
||||||
|
|
||||||
### Step 1: Data transformation and feature engineering using Chronos TSDataset
|
### Step 1: Data transformation and feature engineering using Chronos TSDataset
|
||||||
|
|
||||||
[TSDataset](https://analytics-zoo.readthedocs.io/en/latest/doc/PythonAPI/Chronos/tsdataset.html) is our abstract of time series dataset for data transformation and feature engineering. Here we use it to preprocess the data.
|
[TSDataset](https://bigdl.readthedocs.io/en/latest/doc/Chronos/Overview/data_processing_feature_engineering.html) is our abstract of time series dataset for data transformation and feature engineering. Here we use it to preprocess the data.
|
||||||
|
|
||||||
Initialize train, valid and test tsdataset from raw pandas dataframe.
|
Initialize train, valid and test tsdataset from raw pandas dataframe.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from zoo.chronos.data import TSDataset
|
from bigdl.chronos.data import TSDataset
|
||||||
from sklearn.preprocessing import StandardScaler
|
from sklearn.preprocessing import StandardScaler
|
||||||
|
|
||||||
tsdata_train, tsdata_valid, tsdata_test = TSDataset.from_pandas(df, dt_col="timestamp", target_col="value",
|
tsdata_train, tsdata_valid, tsdata_test = TSDataset.from_pandas(df, dt_col="timestamp", target_col="value",
|
||||||
|
|
@ -54,7 +54,7 @@ for tsdata in [tsdata_train, tsdata_valid, tsdata_test]:
|
||||||
|
|
||||||
### Step 2: Time series forecasting using Chronos Forecaster
|
### Step 2: Time series forecasting using Chronos Forecaster
|
||||||
|
|
||||||
After preprocessing the datasets. We can use [Chronos Forecaster](https://analytics-zoo.readthedocs.io/en/latest/doc/PythonAPI/Chronos/forecasters.html) to handle the forecasting tasks.
|
After preprocessing the datasets. We can use [Chronos Forecaster](https://bigdl.readthedocs.io/en/latest/doc/Chronos/Overview/forecasting.html#use-standalone-forecaster-pipeline) to handle the forecasting tasks.
|
||||||
|
|
||||||
Transform TSDataset to sampled numpy ndarray and feed them to forecaster.
|
Transform TSDataset to sampled numpy ndarray and feed them to forecaster.
|
||||||
|
|
||||||
|
|
@ -68,7 +68,7 @@ forecaster = TCNForecaster(past_seq_len=lookback, # number of steps to look bac
|
||||||
future_seq_len=horizon, # number of steps to predict
|
future_seq_len=horizon, # number of steps to predict
|
||||||
input_feature_num=x.shape[-1], # number of feature to use
|
input_feature_num=x.shape[-1], # number of feature to use
|
||||||
output_feature_num=y.shape[-1]) # number of feature to predict
|
output_feature_num=y.shape[-1]) # number of feature to predict
|
||||||
res = forecaster.fit((x, y), validation_data=(x_val, y_val), epochs=3)
|
res = forecaster.fit(data=(x, y), epochs=3)
|
||||||
```
|
```
|
||||||
|
|
||||||
### Step 3: Further deployment with fitted forecaster
|
### Step 3: Further deployment with fitted forecaster
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue