Chronos: add forecaster alg choose guide and some cleaning for how to guide (#7139)
* fix format * fix * update * update
This commit is contained in:
		
							parent
							
								
									925874b2cd
								
							
						
					
					
						commit
						56e94eda59
					
				
					 4 changed files with 82 additions and 10 deletions
				
			
		| 
						 | 
					@ -203,6 +203,7 @@ subtrees:
 | 
				
			||||||
                - file: doc/Chronos/Howto/how_to_export_torchscript_files
 | 
					                - file: doc/Chronos/Howto/how_to_export_torchscript_files
 | 
				
			||||||
                - file: doc/Chronos/Howto/how_to_preprocess_my_data
 | 
					                - file: doc/Chronos/Howto/how_to_preprocess_my_data
 | 
				
			||||||
                - file: doc/Chronos/Howto/how_to_process_data_in_production_environment
 | 
					                - file: doc/Chronos/Howto/how_to_process_data_in_production_environment
 | 
				
			||||||
 | 
					                - file: doc/Chronos/Howto/how_to_choose_forecasting_alg
 | 
				
			||||||
          - file: doc/Chronos/QuickStart/index
 | 
					          - file: doc/Chronos/QuickStart/index
 | 
				
			||||||
            title: "Tutorials"
 | 
					            title: "Tutorials"
 | 
				
			||||||
            subtrees:
 | 
					            subtrees:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,48 @@
 | 
				
			||||||
 | 
					# Choose proper forecasting model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					How to choose a forecasting model among so many built-in models (or build one by yourself) in Chronos? That's a common question when users want to build their first forecasting model. Different forecasting models are more suitable for different data and different metrics(accuracy or performances).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The flowchart below is designed to guide our users which forecasting model to try on your own data. Click on the blocks in the chart below to see its documentation/examples.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```eval_rst
 | 
				
			||||||
 | 
					.. note::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Following flowchart may need some time to load.
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```eval_rst
 | 
				
			||||||
 | 
					.. mermaid::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    flowchart TD
 | 
				
			||||||
 | 
					        StartPoint[I want to build a forecasting model]
 | 
				
			||||||
 | 
					        StartPoint-- always start from --> TCN[TCNForecaster]
 | 
				
			||||||
 | 
					        TCN -- performance is not satisfying --> TCN_OPT[Make sure optimizations are deploied]
 | 
				
			||||||
 | 
					        TCN_OPT -- further performance improvement is needed --> SER[Performance-awared Hyperparameter Optimization]
 | 
				
			||||||
 | 
					        SER -- only 1 step to be predicted --> LSTMForecaster
 | 
				
			||||||
 | 
					        SER -- only 1 var to be predicted --> NBeatsForecaster
 | 
				
			||||||
 | 
					        LSTMForecaster -- does not work --> CUS[customized model]
 | 
				
			||||||
 | 
					        NBeatsForecaster -- does not work --> CUS[customized model]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        TCN -- accuracy is not satisfying --> Tune[Hyperparameter Optimization]
 | 
				
			||||||
 | 
					        Tune -- only 1 step to be predicted --> LSTMForecaster2[LSTMForecaster]
 | 
				
			||||||
 | 
					        LSTMForecaster2 -- does not work --> AutoformerForecaster
 | 
				
			||||||
 | 
					        Tune -- more than 1 step to be predicted --> AutoformerForecaster
 | 
				
			||||||
 | 
					        AutoformerForecaster -- does not work --> Seq2SeqForecaster
 | 
				
			||||||
 | 
					        Seq2SeqForecaster -- does not work --> CUS[customized model]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        click TCN "https://bigdl.readthedocs.io/en/latest/doc/Chronos/Overview/forecasting.html#tcnforecaster"
 | 
				
			||||||
 | 
					        click LSTMForecaster "https://bigdl.readthedocs.io/en/latest/doc/Chronos/Overview/forecasting.html#lstmforecaster"
 | 
				
			||||||
 | 
					        click LSTMForecaster2 "https://bigdl.readthedocs.io/en/latest/doc/Chronos/Overview/forecasting.html#lstmforecaster"
 | 
				
			||||||
 | 
					        click NBeatsForecaster "https://bigdl.readthedocs.io/en/latest/doc/Chronos/Overview/forecasting.html#nbeatsforecaster"
 | 
				
			||||||
 | 
					        click Seq2SeqForecaster "https://bigdl.readthedocs.io/en/latest/doc/Chronos/Overview/forecasting.html#seq2seqforecaster"
 | 
				
			||||||
 | 
					        click AutoformerForecaster "https://bigdl.readthedocs.io/en/latest/doc/Chronos/Overview/forecasting.html#AutoformerForecaster"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        click TCN_OPT "https://bigdl.readthedocs.io/en/latest/doc/Chronos/Overview/speed_up.html"
 | 
				
			||||||
 | 
					        click SER "https://github.com/intel-analytics/BigDL/blob/main/python/chronos/example/hpo/muti_objective_hpo_with_builtin_latency_tutorial.ipynb"
 | 
				
			||||||
 | 
					        click Tune "https://bigdl.readthedocs.io/en/latest/doc/Chronos/Howto/how_to_tune_forecaster_model.html"
 | 
				
			||||||
 | 
					        click CUS "https://bigdl.readthedocs.io/en/latest/doc/Chronos/Overview/speed_up.html"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        classDef Model fill:#FFF,stroke:#0f29ba,stroke-width:1px;
 | 
				
			||||||
 | 
					        class TCN,LSTMForecaster,NBeatsForecaster,LSTMForecaster2,AutoformerForecaster,Seq2SeqForecaster Model;
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
| 
						 | 
					@ -2,33 +2,46 @@ Chronos How-to Guides
 | 
				
			||||||
=========================
 | 
					=========================
 | 
				
			||||||
How-to guides are bite-sized, executable examples where users could check when meeting with some specific topic during the usage.
 | 
					How-to guides are bite-sized, executable examples where users could check when meeting with some specific topic during the usage.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Install
 | 
					Installation
 | 
				
			||||||
-------------------------
 | 
					-------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* `Install Chronos on Windows <windows_guide.html>`__
 | 
					* `Install Chronos on Windows <windows_guide.html>`__
 | 
				
			||||||
* `Use Chronos in container(docker) <docker_guide_single_node.html>`__
 | 
					* `Use Chronos in container(docker) <docker_guide_single_node.html>`__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Data Processing
 | 
				
			||||||
 | 
					-------------------------
 | 
				
			||||||
 | 
					* `Preprocess my data <how_to_preprocess_my_data.html>`__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Forecasting
 | 
					Forecasting
 | 
				
			||||||
-------------------------
 | 
					-------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Develop a forecaster
 | 
				
			||||||
 | 
					~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
				
			||||||
 | 
					* `Choose a forecaster algorithm <how_to_choose_forecasting_alg.html>`__
 | 
				
			||||||
* `Create a forecaster <how_to_create_forecaster.html>`__
 | 
					* `Create a forecaster <how_to_create_forecaster.html>`__
 | 
				
			||||||
* `Train forecaster on single node <how_to_train_forecaster_on_one_node.html>`__
 | 
					* `Train forecaster on single node <how_to_train_forecaster_on_one_node.html>`__
 | 
				
			||||||
* `Save and load a forecaster <how_to_save_and_load_forecaster.html>`__
 | 
					 | 
				
			||||||
* `Tune forecaster on single node <how_to_tune_forecaster_model.html>`__
 | 
					* `Tune forecaster on single node <how_to_tune_forecaster_model.html>`__
 | 
				
			||||||
* `Speed up inference of forecaster through ONNXRuntime <how_to_speedup_inference_of_forecaster_through_ONNXRuntime.html>`__
 | 
					 | 
				
			||||||
* `Speed up inference of forecaster through OpenVINO <how_to_speedup_inference_of_forecaster_through_OpenVINO.html>`__
 | 
					 | 
				
			||||||
* `Evaluate a forecaster <how_to_evaluate_a_forecaster.html>`__
 | 
					* `Evaluate a forecaster <how_to_evaluate_a_forecaster.html>`__
 | 
				
			||||||
* `Use forecaster to predict future data <how_to_use_forecaster_to_predict_future_data.html>`__
 | 
					* `Use forecaster to predict future data <how_to_use_forecaster_to_predict_future_data.html>`__
 | 
				
			||||||
* `Generate confidence interval for prediction <how_to_generate_confidence_interval_for_prediction.html>`__
 | 
					* `Generate confidence interval for prediction <how_to_generate_confidence_interval_for_prediction.html>`__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Speed up a forecaster
 | 
				
			||||||
 | 
					~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
				
			||||||
 | 
					* `Speed up inference of forecaster through ONNXRuntime <how_to_speedup_inference_of_forecaster_through_ONNXRuntime.html>`__
 | 
				
			||||||
 | 
					* `Speed up inference of forecaster through OpenVINO <how_to_speedup_inference_of_forecaster_through_OpenVINO.html>`__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Persist a forecaster
 | 
				
			||||||
 | 
					~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
				
			||||||
 | 
					* `Save and load a forecaster <how_to_save_and_load_forecaster.html>`__
 | 
				
			||||||
* `Export the ONNX model files to disk <how_to_export_onnx_files.html>`__
 | 
					* `Export the ONNX model files to disk <how_to_export_onnx_files.html>`__
 | 
				
			||||||
* `Export the OpenVINO model files to disk <how_to_export_openvino_files.html>`__
 | 
					* `Export the OpenVINO model files to disk <how_to_export_openvino_files.html>`__
 | 
				
			||||||
* `Export the TorchScript model files to disk <how_to_export_torchscript_files.html>`__
 | 
					* `Export the TorchScript model files to disk <how_to_export_torchscript_files.html>`__
 | 
				
			||||||
* `Preprocess my data <how_to_preprocess_my_data.html>`__
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Benchmark
 | 
					Benchmark a forecaster
 | 
				
			||||||
-------------------------
 | 
					~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
				
			||||||
* `Use Chronos benchmark tool <how_to_use_benchmark_tool.html>`__
 | 
					* `Use Chronos benchmark tool <how_to_use_benchmark_tool.html>`__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Deployment
 | 
					Deploy a forecaster
 | 
				
			||||||
-------------------------
 | 
					~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
				
			||||||
* `A whole workflow in production environment after my forecaster is developed <how_to_process_data_in_production_environment.html>`__
 | 
					* `A whole workflow in production environment after my forecaster is developed <how_to_process_data_in_production_environment.html>`__
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,8 @@ Besides, _Chronos_ also provides **benchmark tool** to benchmark forecasting per
 | 
				
			||||||
| ----------------- | ----- | ------------- | ---------- | ------- | ----------- | ----------- | ----------- | ----------- | ----------- | ----------- |
 | 
					| ----------------- | ----- | ------------- | ---------- | ------- | ----------- | ----------- | ----------- | ----------- | ----------- | ----------- |
 | 
				
			||||||
| LSTM    | RR    | ✅             | ❌      | ✅    | ✅   | ✅           | ✅        | ✅          | ✅         | pytorch/tf2  |
 | 
					| LSTM    | RR    | ✅             | ❌      | ✅    | ✅   | ✅           | ✅        | ✅          | ✅         | pytorch/tf2  |
 | 
				
			||||||
| Seq2Seq     | RR    | ✅             | ✅     | ✅     | ✅     | ✅           | ❌      | ✅          | ✅         | pytorch/tf2  |
 | 
					| Seq2Seq     | RR    | ✅             | ✅     | ✅     | ✅     | ✅           | ❌      | ✅          | ✅         | pytorch/tf2  |
 | 
				
			||||||
| TCN | RR    | ✅             | ✅     | ✅     | ✅     | ✅           | ✅      | ✅          | ✅         | pytorch  |
 | 
					| TCN | RR    | ✅             | ✅     | ✅     | ✅     | ✅           | ✅      | ✅          | ✅         | pytorch/tf2  |
 | 
				
			||||||
 | 
					| Autoformer | RR    | ✅             | ✅     | ✅     | ❌     | ❌           | ❌      | ❌          | ❌         | pytorch  |
 | 
				
			||||||
| NBeats | RR    | ❌             | ✅     | ❌     | ✅     | ✅           | ✅      | ❌          | ❌         | pytorch  |
 | 
					| NBeats | RR    | ❌             | ✅     | ❌     | ✅     | ✅           | ✅      | ❌          | ❌         | pytorch  |
 | 
				
			||||||
| MTNet   | RR    | ✅             | ❌    | ✅     | ❌     | ❌          | ❌         | ❌          | ✳️\*\*        | tf2 |
 | 
					| MTNet   | RR    | ✅             | ❌    | ✅     | ❌     | ❌          | ❌         | ❌          | ✳️\*\*        | tf2 |
 | 
				
			||||||
| TCMF    | TS    | ✅             | ✅    | ✅      | ✳️\*     | ❌          | ❌         | ❌          | ❌         | pytorch  |
 | 
					| TCMF    | TS    | ✅             | ✅    | ✅      | ✳️\*     | ❌          | ❌         | ❌          | ❌         | pytorch  |
 | 
				
			||||||
| 
						 | 
					@ -258,6 +259,15 @@ View Stock Prediction [notebook][stock_prediction_prophet] and [ProphetForecaste
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Neural basis expansion analysis for interpretable time series forecasting ([N-BEATS](https://arxiv.org/abs/1905.10437)) is a deep neural architecture based on backward and forward residual links and a very deep stack of fully-connected layers. Nbeats can solve univariate time series point forecasting problems, being interpretable, and fast to train.
 | 
					Neural basis expansion analysis for interpretable time series forecasting ([N-BEATS](https://arxiv.org/abs/1905.10437)) is a deep neural architecture based on backward and forward residual links and a very deep stack of fully-connected layers. Nbeats can solve univariate time series point forecasting problems, being interpretable, and fast to train.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[NBeatsForecaster API Doc](../../PythonAPI/Chronos/forecasters.html#nbeatsforecaster) for more details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<span id="AutoformerForecaster"></span>
 | 
				
			||||||
 | 
					##### 3.9 AutoformerForecaster
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting ([Autoformer](https://arxiv.org/abs/2106.13008)) is a Transformer based neural network that could reach SOTA results on many datasets.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[AutoformerForecaster API Doc](../../PythonAPI/Chronos/forecasters.html#autoformerforecaster) for more details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### 4. Use Auto forecasting model
 | 
					#### 4. Use Auto forecasting model
 | 
				
			||||||
Auto forecasting models are designed to be used exactly the same as Forecasters. The only difference is that you can set hp search function to the hyperparameters and the `.fit()` method will search the best hyperparameter setting.
 | 
					Auto forecasting models are designed to be used exactly the same as Forecasters. The only difference is that you can set hp search function to the hyperparameters and the `.fit()` method will search the best hyperparameter setting.
 | 
				
			||||||
```python
 | 
					```python
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue