autogluon.timeseries 1.0.1b20240101__tar.gz → 1.0.1b20240206__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of autogluon.timeseries might be problematic. Click here for more details.
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/PKG-INFO +56 -115
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/abstract/abstract_timeseries_model.py +0 -6
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/autogluon_tabular/mlforecast.py +0 -2
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/ensemble/greedy_ensemble.py +0 -3
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/gluonts/abstract_gluonts.py +0 -2
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/local/abstract_local_model.py +1 -3
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/multi_window/multi_window_model.py +0 -4
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/predictor.py +27 -9
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/trainer/abstract_trainer.py +15 -14
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/version.py +1 -1
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon.timeseries.egg-info/PKG-INFO +56 -115
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon.timeseries.egg-info/requires.txt +3 -3
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/setup.cfg +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/setup.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/__init__.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/configs/__init__.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/configs/presets_configs.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/dataset/__init__.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/dataset/ts_dataframe.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/evaluator.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/learner.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/metrics/__init__.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/metrics/abstract.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/metrics/point.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/metrics/quantile.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/metrics/utils.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/__init__.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/abstract/__init__.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/abstract/model_trial.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/autogluon_tabular/__init__.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/autogluon_tabular/utils.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/ensemble/__init__.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/ensemble/abstract_timeseries_ensemble.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/gluonts/__init__.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/gluonts/torch/__init__.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/gluonts/torch/models.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/local/__init__.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/local/naive.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/local/npts.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/local/statsforecast.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/multi_window/__init__.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/models/presets.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/splitter.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/trainer/__init__.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/trainer/auto_trainer.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/utils/__init__.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/utils/datetime/__init__.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/utils/datetime/base.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/utils/datetime/lags.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/utils/datetime/seasonality.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/utils/datetime/time_features.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/utils/features.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/utils/forecast.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon/timeseries/utils/warning_filters.py +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon.timeseries.egg-info/SOURCES.txt +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon.timeseries.egg-info/dependency_links.txt +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon.timeseries.egg-info/namespace_packages.txt +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon.timeseries.egg-info/top_level.txt +0 -0
- {autogluon.timeseries-1.0.1b20240101 → autogluon.timeseries-1.0.1b20240206}/src/autogluon.timeseries.egg-info/zip-safe +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: autogluon.timeseries
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.1b20240206
|
|
4
4
|
Summary: AutoML for Image, Text, and Tabular Data
|
|
5
5
|
Home-page: https://github.com/autogluon/autogluon
|
|
6
6
|
Author: AutoGluon Community
|
|
@@ -11,39 +11,46 @@ Project-URL: Source, https://github.com/autogluon/autogluon/
|
|
|
11
11
|
Project-URL: Contribute!, https://github.com/autogluon/autogluon/blob/master/CONTRIBUTING.md
|
|
12
12
|
Description:
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
<
|
|
16
|
-
<img src="https://user-images.githubusercontent.com/16392542/77208906-224aa500-6aba-11ea-96bd-e81806074030.png" width="350">
|
|
17
|
-
</div>
|
|
14
|
+
<div align="center">
|
|
15
|
+
<img src="https://user-images.githubusercontent.com/16392542/77208906-224aa500-6aba-11ea-96bd-e81806074030.png" width="350">
|
|
18
16
|
|
|
19
17
|
## AutoML for Image, Text, Time Series, and Tabular Data
|
|
20
18
|
|
|
21
19
|
[](https://github.com/autogluon/autogluon/releases)
|
|
22
|
-
[](https://github.com/autogluon/autogluon/actions/workflows/platform_tests-command.yml)
|
|
20
|
+
[](https://anaconda.org/conda-forge/autogluon)
|
|
24
21
|
[](https://pypi.org/project/autogluon/)
|
|
25
|
-
[](./LICENSE)
|
|
26
22
|
[](https://pepy.tech/project/autogluon)
|
|
27
|
-
[](./LICENSE)
|
|
24
|
+
[](https://discord.gg/wjUmjqAc2N)
|
|
28
25
|
[](https://twitter.com/autogluon)
|
|
26
|
+
[](https://github.com/autogluon/autogluon/actions/workflows/continuous_integration.yml)
|
|
27
|
+
[](https://github.com/autogluon/autogluon/actions/workflows/platform_tests-command.yml)
|
|
29
28
|
|
|
30
|
-
[Install Instructions](https://auto.gluon.ai/stable/install.html) | Documentation
|
|
29
|
+
[Install Instructions](https://auto.gluon.ai/stable/install.html) | [Documentation](https://auto.gluon.ai/stable/index.html) | [Release Notes](https://auto.gluon.ai/stable/whats_new/index.html)
|
|
31
30
|
|
|
32
31
|
AutoGluon automates machine learning tasks enabling you to easily achieve strong predictive performance in your applications. With just a few lines of code, you can train and deploy high-accuracy machine learning and deep learning models on image, text, time series, and tabular data.
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
## 💾 Installation
|
|
35
|
+
|
|
36
|
+
AutoGluon is supported on Python 3.8 - 3.11 and is available on Linux, MacOS, and Windows.
|
|
33
37
|
|
|
34
|
-
|
|
38
|
+
You can install AutoGluon with:
|
|
35
39
|
|
|
36
40
|
```python
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
pip install autogluon
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Visit our [Installation Guide](https://auto.gluon.ai/stable/install.html) for detailed instructions, including GPU support, Conda installs, and optional dependencies.
|
|
45
|
+
|
|
46
|
+
## :zap: Quickstart
|
|
47
|
+
|
|
48
|
+
Build accurate end-to-end ML models in just 3 lines of code!
|
|
49
|
+
|
|
50
|
+
```python
|
|
51
|
+
from autogluon.tabular import TabularPredictor
|
|
52
|
+
predictor = TabularPredictor(label="class").fit("train.csv")
|
|
53
|
+
predictions = predictor.predict("test.csv")
|
|
47
54
|
```
|
|
48
55
|
|
|
49
56
|
| AutoGluon Task | Quickstart | API |
|
|
@@ -52,116 +59,50 @@ Description:
|
|
|
52
59
|
| MultiModalPredictor | [](https://auto.gluon.ai/stable/tutorials/multimodal/multimodal_prediction/multimodal-quick-start.html) | [](https://auto.gluon.ai/stable/api/autogluon.multimodal.MultiModalPredictor.html) |
|
|
53
60
|
| TimeSeriesPredictor | [](https://auto.gluon.ai/stable/tutorials/timeseries/forecasting-quick-start.html) | [](https://auto.gluon.ai/stable/api/autogluon.timeseries.TimeSeriesPredictor.html) |
|
|
54
61
|
|
|
55
|
-
## Resources
|
|
62
|
+
## :mag: Resources
|
|
56
63
|
|
|
57
|
-
|
|
58
|
-
- [Installing AutoGluon](https://auto.gluon.ai/stable/index.html#installation)
|
|
59
|
-
- [Learning with tabular data](https://auto.gluon.ai/stable/tutorials/tabular/tabular-quick-start.html)
|
|
60
|
-
- [Tips to maximize accuracy](https://auto.gluon.ai/stable/tutorials/tabular/tabular-essentials.html#maximizing-predictive-performance) (if **benchmarking**, make sure to run `fit()` with argument `presets='best_quality'`).
|
|
64
|
+
### Hands-on Tutorials / Talks
|
|
61
65
|
|
|
62
|
-
|
|
63
|
-
- [Learning with time series data](https://auto.gluon.ai/stable/tutorials/timeseries/forecasting-quick-start.html)
|
|
66
|
+
Below is a curated list of recent tutorials and talks on AutoGluon. A comprehensive list is available [here](AWESOME.md#videos--tutorials).
|
|
64
67
|
|
|
65
|
-
|
|
68
|
+
| Title | Format | Location | Date |
|
|
69
|
+
|--------------------------------------------------------------------------------------------------------------------------|----------|----------------------------------------------------------------------------------|------------|
|
|
70
|
+
| :tv: [AutoGluon 1.0: Shattering the AutoML Ceiling with Zero Lines of Code](https://www.youtube.com/watch?v=5tvp_Ihgnuk) | Tutorial | [AutoML Conf 2023](https://2023.automl.cc/) | 2023/09/12 |
|
|
71
|
+
| :sound: [AutoGluon: The Story](https://automlpodcast.com/episode/autogluon-the-story) | Podcast | [The AutoML Podcast](https://automlpodcast.com/) | 2023/09/05 |
|
|
72
|
+
| :tv: [AutoGluon: AutoML for Tabular, Multimodal, and Time Series Data](https://youtu.be/Lwu15m5mmbs?si=jSaFJDqkTU27C0fa) | Tutorial | PyData Berlin | 2023/06/20 |
|
|
73
|
+
| :tv: [Solving Complex ML Problems in a few Lines of Code with AutoGluon](https://www.youtube.com/watch?v=J1UQUCPB88I) | Tutorial | PyData Seattle | 2023/06/20 |
|
|
74
|
+
| :tv: [The AutoML Revolution](https://www.youtube.com/watch?v=VAAITEds-28) | Tutorial | [Fall AutoML School 2022](https://sites.google.com/view/automl-fall-school-2022) | 2022/10/18 |
|
|
66
75
|
|
|
67
76
|
### Scientific Publications
|
|
68
|
-
- [AutoGluon-Tabular: Robust and Accurate AutoML for Structured Data](https://arxiv.org/pdf/2003.06505.pdf) (*Arxiv*, 2020)
|
|
69
|
-
- [Fast, Accurate, and Simple Models for Tabular Data via Augmented Distillation](https://proceedings.neurips.cc/paper/2020/hash/62d75fb2e3075506e8837d8f55021ab1-Abstract.html) (*NeurIPS*, 2020)
|
|
70
|
-
- [Multimodal AutoML
|
|
77
|
+
- [AutoGluon-Tabular: Robust and Accurate AutoML for Structured Data](https://arxiv.org/pdf/2003.06505.pdf) (*Arxiv*, 2020) ([BibTeX](CITING.md#general-usage--autogluontabular))
|
|
78
|
+
- [Fast, Accurate, and Simple Models for Tabular Data via Augmented Distillation](https://proceedings.neurips.cc/paper/2020/hash/62d75fb2e3075506e8837d8f55021ab1-Abstract.html) (*NeurIPS*, 2020) ([BibTeX](CITING.md#tabular-distillation))
|
|
79
|
+
- [Benchmarking Multimodal AutoML for Tabular Data with Text Fields](https://datasets-benchmarks-proceedings.neurips.cc/paper/2021/file/9bf31c7ff062936a96d3c8bd1f8f2ff3-Paper-round2.pdf) (*NeurIPS*, 2021) ([BibTeX](CITING.md#autogluonmultimodal))
|
|
80
|
+
- [XTab: Cross-table Pretraining for Tabular Transformers](https://proceedings.mlr.press/v202/zhu23k/zhu23k.pdf) (*ICML*, 2023)
|
|
81
|
+
- [AutoGluon-TimeSeries: AutoML for Probabilistic Time Series Forecasting](https://arxiv.org/abs/2308.05566) (*AutoML Conf*, 2023) ([BibTeX](CITING.md#autogluontimeseries))
|
|
82
|
+
- [TabRepo: A Large Scale Repository of Tabular Model Evaluations and its AutoML Applications](https://arxiv.org/pdf/2311.02971.pdf) (*Under Review*, 2024)
|
|
71
83
|
|
|
72
84
|
### Articles
|
|
85
|
+
- [AutoGluon-TimeSeries: Every Time Series Forecasting Model In One Library](https://towardsdatascience.com/autogluon-timeseries-every-time-series-forecasting-model-in-one-library-29a3bf6879db) (*Towards Data Science*, Jan 2024)
|
|
73
86
|
- [AutoGluon for tabular data: 3 lines of code to achieve top 1% in Kaggle competitions](https://aws.amazon.com/blogs/opensource/machine-learning-with-autogluon-an-open-source-automl-library/) (*AWS Open Source Blog*, Mar 2020)
|
|
74
|
-
- [Accurate image classification in 3 lines of code with AutoGluon](https://medium.com/@zhanghang0704/image-classification-on-kaggle-using-autogluon-fc896e74d7e8) (*Medium*, Feb 2020)
|
|
75
87
|
- [AutoGluon overview & example applications](https://towardsdatascience.com/autogluon-deep-learning-automl-5cdb4e2388ec?source=friends_link&sk=e3d17d06880ac714e47f07f39178fdf2) (*Towards Data Science*, Dec 2019)
|
|
76
88
|
|
|
77
|
-
### Hands-on Tutorials
|
|
78
|
-
- [Practical Automated Machine Learning with Tabular, Text, and Image Data (KDD 2020)](https://jwmueller.github.io/KDD20-tutorial/)
|
|
79
|
-
|
|
80
89
|
### Train/Deploy AutoGluon in the Cloud
|
|
81
|
-
- [AutoGluon
|
|
82
|
-
- [AutoGluon
|
|
83
|
-
- [AutoGluon
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
We are actively accepting code contributions to the AutoGluon project. If you are interested in contributing to AutoGluon, please read the [Contributing Guide](https://github.com/autogluon/autogluon/blob/master/CONTRIBUTING.md) to get started.
|
|
88
|
-
|
|
89
|
-
## Citing AutoGluon
|
|
90
|
+
- [AutoGluon Cloud](https://auto.gluon.ai/cloud/stable/index.html) (Recommended)
|
|
91
|
+
- [AutoGluon on SageMaker AutoPilot](https://auto.gluon.ai/stable/tutorials/cloud_fit_deploy/autopilot-autogluon.html)
|
|
92
|
+
- [AutoGluon on Amazon SageMaker](https://auto.gluon.ai/stable/tutorials/cloud_fit_deploy/cloud-aws-sagemaker-train-deploy.html)
|
|
93
|
+
- [AutoGluon Deep Learning Containers](https://github.com/aws/deep-learning-containers/blob/master/available_images.md#autogluon-training-containers) (Security certified & maintained by the AutoGluon developers)
|
|
94
|
+
- [AutoGluon Official Docker Container](https://hub.docker.com/r/autogluon/autogluon)
|
|
95
|
+
- [AutoGluon-Tabular on AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-n4zf5pmjt7ism) (Not maintained by us)
|
|
90
96
|
|
|
91
|
-
|
|
97
|
+
## :pencil: Citing AutoGluon
|
|
92
98
|
|
|
93
|
-
|
|
99
|
+
If you use AutoGluon in a scientific publication, please refer to our [citation guide](CITING.md).
|
|
94
100
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
```bibtex
|
|
98
|
-
@article{agtabular,
|
|
99
|
-
title={AutoGluon-Tabular: Robust and Accurate AutoML for Structured Data},
|
|
100
|
-
author={Erickson, Nick and Mueller, Jonas and Shirkov, Alexander and Zhang, Hang and Larroy, Pedro and Li, Mu and Smola, Alexander},
|
|
101
|
-
journal={arXiv preprint arXiv:2003.06505},
|
|
102
|
-
year={2020}
|
|
103
|
-
}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
If you are using AutoGluon Tabular's model distillation functionality, please cite the following paper:
|
|
107
|
-
|
|
108
|
-
Fakoor, Rasool, et al. ["Fast, Accurate, and Simple Models for Tabular Data via Augmented Distillation."](https://proceedings.neurips.cc/paper/2020/hash/62d75fb2e3075506e8837d8f55021ab1-Abstract.html) Advances in Neural Information Processing Systems 33 (2020).
|
|
109
|
-
|
|
110
|
-
BibTeX entry:
|
|
111
|
-
|
|
112
|
-
```bibtex
|
|
113
|
-
@article{agtabulardistill,
|
|
114
|
-
title={Fast, Accurate, and Simple Models for Tabular Data via Augmented Distillation},
|
|
115
|
-
author={Fakoor, Rasool and Mueller, Jonas W and Erickson, Nick and Chaudhari, Pratik and Smola, Alexander J},
|
|
116
|
-
journal={Advances in Neural Information Processing Systems},
|
|
117
|
-
volume={33},
|
|
118
|
-
year={2020}
|
|
119
|
-
}
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
If you use AutoGluon's multimodal text+tabular functionality in a scientific publication, please cite the following paper:
|
|
123
|
-
|
|
124
|
-
Shi, Xingjian, et al. ["Multimodal AutoML on Structured Tables with Text Fields."](https://openreview.net/forum?id=OHAIVOOl7Vl) 8th ICML Workshop on Automated Machine Learning (AutoML). 2021.
|
|
125
|
-
|
|
126
|
-
BibTeX entry:
|
|
127
|
-
|
|
128
|
-
```bibtex
|
|
129
|
-
@inproceedings{agmultimodaltext,
|
|
130
|
-
title={Multimodal AutoML on Structured Tables with Text Fields},
|
|
131
|
-
author={Shi, Xingjian and Mueller, Jonas and Erickson, Nick and Li, Mu and Smola, Alex},
|
|
132
|
-
booktitle={8th ICML Workshop on Automated Machine Learning (AutoML)},
|
|
133
|
-
year={2021}
|
|
134
|
-
}
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
If you use AutoGluon's time series forecasting functionality in a scientific publication, please cite the following paper:
|
|
138
|
-
```bibtex
|
|
139
|
-
@inproceedings{agtimeseries,
|
|
140
|
-
title={{AutoGluon-TimeSeries}: {AutoML} for Probabilistic Time Series Forecasting},
|
|
141
|
-
author={Shchur, Oleksandr and Turkmen, Caner and Erickson, Nick and Shen, Huibin and Shirkov, Alexander and Hu, Tony and Wang, Yuyang},
|
|
142
|
-
booktitle={International Conference on Automated Machine Learning},
|
|
143
|
-
year={2023}
|
|
144
|
-
}
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
## AutoGluon for Hyperparameter Optimization
|
|
149
|
-
|
|
150
|
-
AutoGluon's state-of-the-art tools for hyperparameter optimization, such as ASHA, Hyperband, Bayesian Optimization and BOHB have moved to the stand-alone package [syne-tune](https://github.com/awslabs/syne-tune).
|
|
151
|
-
|
|
152
|
-
To learn more, checkout our paper ["Model-based Asynchronous Hyperparameter and Neural Architecture Search"](https://arxiv.org/abs/2003.10865) arXiv preprint arXiv:2003.10865 (2020).
|
|
153
|
-
|
|
154
|
-
```bibtex
|
|
155
|
-
@article{abohb,
|
|
156
|
-
title={Model-based Asynchronous Hyperparameter and Neural Architecture Search},
|
|
157
|
-
author={Klein, Aaron and Tiao, Louis and Lienart, Thibaut and Archambeau, Cedric and Seeger, Matthias},
|
|
158
|
-
journal={arXiv preprint arXiv:2003.10865},
|
|
159
|
-
year={2020}
|
|
160
|
-
}
|
|
161
|
-
```
|
|
101
|
+
## :wave: How to get involved
|
|
162
102
|
|
|
103
|
+
We are actively accepting code contributions to the AutoGluon project. If you are interested in contributing to AutoGluon, please read the [Contributing Guide](https://github.com/autogluon/autogluon/blob/master/CONTRIBUTING.md) to get started.
|
|
163
104
|
|
|
164
|
-
## License
|
|
105
|
+
## :classical_building: License
|
|
165
106
|
|
|
166
107
|
This library is licensed under the Apache 2.0 License.
|
|
167
108
|
|
|
@@ -227,11 +227,6 @@ class AbstractTimeSeriesModel(AbstractModel):
|
|
|
227
227
|
verbosity : int, default = 2
|
|
228
228
|
Verbosity levels range from 0 to 4 and control how much information is printed.
|
|
229
229
|
Higher levels correspond to more detailed print statements (you can set verbosity = 0 to suppress warnings).
|
|
230
|
-
verbosity 4: logs every training iteration, and logs the most detailed information.
|
|
231
|
-
verbosity 3: logs training iterations periodically, and logs more detailed information.
|
|
232
|
-
verbosity 2: logs only important information.
|
|
233
|
-
verbosity 1: logs only warnings and exceptions.
|
|
234
|
-
verbosity 0: logs only exceptions.
|
|
235
230
|
**kwargs :
|
|
236
231
|
Any additional fit arguments a model supports.
|
|
237
232
|
|
|
@@ -427,7 +422,6 @@ class AbstractTimeSeriesModel(AbstractModel):
|
|
|
427
422
|
hpo_executor: HpoExecutor,
|
|
428
423
|
**kwargs,
|
|
429
424
|
):
|
|
430
|
-
# verbosity = kwargs.get('verbosity', 2)
|
|
431
425
|
time_start = time.time()
|
|
432
426
|
logger.debug(f"\tStarting AbstractTimeSeriesModel hyperparameter tuning for {self.name}")
|
|
433
427
|
search_space = self._get_search_space()
|
|
@@ -9,7 +9,6 @@ import pandas as pd
|
|
|
9
9
|
from sklearn.base import BaseEstimator
|
|
10
10
|
|
|
11
11
|
import autogluon.core as ag
|
|
12
|
-
from autogluon.common.utils.log_utils import set_logger_verbosity
|
|
13
12
|
from autogluon.tabular import TabularPredictor
|
|
14
13
|
from autogluon.timeseries.dataset.ts_dataframe import ITEMID, TIMESTAMP, TimeSeriesDataFrame
|
|
15
14
|
from autogluon.timeseries.models.abstract import AbstractTimeSeriesModel
|
|
@@ -249,7 +248,6 @@ class AbstractMLForecastModel(AbstractTimeSeriesModel):
|
|
|
249
248
|
from mlforecast import MLForecast
|
|
250
249
|
|
|
251
250
|
self._check_fit_params()
|
|
252
|
-
set_logger_verbosity(verbosity, logger=logger)
|
|
253
251
|
fit_start_time = time.time()
|
|
254
252
|
# TabularEstimator is passed to MLForecast later to include tuning_data
|
|
255
253
|
model_params = self._get_model_params()
|
|
@@ -6,7 +6,6 @@ from typing import Dict, List, Optional
|
|
|
6
6
|
import numpy as np
|
|
7
7
|
|
|
8
8
|
import autogluon.core as ag
|
|
9
|
-
from autogluon.common.utils.log_utils import set_logger_verbosity
|
|
10
9
|
from autogluon.core.models.greedy_ensemble.ensemble_selection import EnsembleSelection
|
|
11
10
|
from autogluon.timeseries import TimeSeriesDataFrame
|
|
12
11
|
from autogluon.timeseries.metrics import TimeSeriesScorer
|
|
@@ -112,10 +111,8 @@ class TimeSeriesGreedyEnsemble(AbstractTimeSeriesEnsembleModel):
|
|
|
112
111
|
predictions_per_window: Dict[str, List[TimeSeriesDataFrame]],
|
|
113
112
|
data_per_window: List[TimeSeriesDataFrame],
|
|
114
113
|
time_limit: Optional[int] = None,
|
|
115
|
-
verbosity: int = 2,
|
|
116
114
|
**kwargs,
|
|
117
115
|
):
|
|
118
|
-
set_logger_verbosity(verbosity, logger=logger)
|
|
119
116
|
if self.eval_metric_seasonal_period is None:
|
|
120
117
|
self.eval_metric_seasonal_period = get_seasonality(self.freq)
|
|
121
118
|
ensemble_selection = TimeSeriesEnsembleSelection(
|
|
@@ -18,7 +18,6 @@ from gluonts.model.predictor import Predictor as GluonTSPredictor
|
|
|
18
18
|
from pandas.tseries.frequencies import to_offset
|
|
19
19
|
|
|
20
20
|
from autogluon.common.loaders import load_pkl
|
|
21
|
-
from autogluon.common.utils.log_utils import set_logger_verbosity
|
|
22
21
|
from autogluon.core.hpo.constants import RAY_BACKEND
|
|
23
22
|
from autogluon.timeseries.dataset.ts_dataframe import ITEMID, TIMESTAMP, TimeSeriesDataFrame
|
|
24
23
|
from autogluon.timeseries.models.abstract import AbstractTimeSeriesModel
|
|
@@ -383,7 +382,6 @@ class AbstractGluonTSModel(AbstractTimeSeriesModel):
|
|
|
383
382
|
if "lightning" in logger_name:
|
|
384
383
|
pl_logger = logging.getLogger(logger_name)
|
|
385
384
|
pl_logger.setLevel(logging.ERROR if verbosity <= 3 else logging.INFO)
|
|
386
|
-
set_logger_verbosity(verbosity, logger=logger)
|
|
387
385
|
gts_logger.setLevel(logging.ERROR if verbosity <= 3 else logging.INFO)
|
|
388
386
|
|
|
389
387
|
if verbosity > 3:
|
|
@@ -8,7 +8,6 @@ import pandas as pd
|
|
|
8
8
|
from joblib import Parallel, delayed
|
|
9
9
|
from scipy.stats import norm
|
|
10
10
|
|
|
11
|
-
from autogluon.common.utils.log_utils import set_logger_verbosity
|
|
12
11
|
from autogluon.core.utils.exceptions import TimeLimitExceeded
|
|
13
12
|
from autogluon.timeseries.dataset.ts_dataframe import ITEMID, TimeSeriesDataFrame
|
|
14
13
|
from autogluon.timeseries.models.abstract import AbstractTimeSeriesModel
|
|
@@ -87,9 +86,8 @@ class AbstractLocalModel(AbstractTimeSeriesModel):
|
|
|
87
86
|
self._seasonal_period: Optional[int] = None
|
|
88
87
|
self.time_limit: Optional[float] = None
|
|
89
88
|
|
|
90
|
-
def _fit(self, train_data: TimeSeriesDataFrame, time_limit: Optional[int] = None,
|
|
89
|
+
def _fit(self, train_data: TimeSeriesDataFrame, time_limit: Optional[int] = None, **kwargs):
|
|
91
90
|
self._check_fit_params()
|
|
92
|
-
set_logger_verbosity(verbosity, logger=logger)
|
|
93
91
|
|
|
94
92
|
if time_limit is not None and time_limit < self.init_time_in_seconds:
|
|
95
93
|
raise TimeLimitExceeded
|
|
@@ -9,7 +9,6 @@ from typing import Dict, Optional, Type, Union
|
|
|
9
9
|
import numpy as np
|
|
10
10
|
|
|
11
11
|
import autogluon.core as ag
|
|
12
|
-
from autogluon.common.utils.log_utils import set_logger_verbosity
|
|
13
12
|
from autogluon.timeseries.dataset.ts_dataframe import TimeSeriesDataFrame
|
|
14
13
|
from autogluon.timeseries.models.abstract import AbstractTimeSeriesModel
|
|
15
14
|
from autogluon.timeseries.models.local.abstract_local_model import AbstractLocalModel
|
|
@@ -82,9 +81,6 @@ class MultiWindowBacktestingModel(AbstractTimeSeriesModel):
|
|
|
82
81
|
):
|
|
83
82
|
# TODO: use incremental training for GluonTS models?
|
|
84
83
|
# TODO: implement parallel fitting similar to ParallelLocalFoldFittingStrategy in tabular?
|
|
85
|
-
verbosity = kwargs.get("verbosity", 2)
|
|
86
|
-
set_logger_verbosity(verbosity, logger=logger)
|
|
87
|
-
|
|
88
84
|
if val_data is not None:
|
|
89
85
|
raise ValueError(f"val_data should not be passed to {self.name}.fit()")
|
|
90
86
|
if val_splitter is None:
|
|
@@ -9,7 +9,7 @@ from typing import Any, Dict, List, Optional, Tuple, Type, Union
|
|
|
9
9
|
import pandas as pd
|
|
10
10
|
|
|
11
11
|
from autogluon.common.utils.deprecated_utils import Deprecated
|
|
12
|
-
from autogluon.common.utils.log_utils import set_logger_verbosity
|
|
12
|
+
from autogluon.common.utils.log_utils import add_log_to_file, set_logger_verbosity
|
|
13
13
|
from autogluon.common.utils.system_info import get_ag_system_info
|
|
14
14
|
from autogluon.common.utils.utils import check_saved_predictor_version, seed_everything, setup_outputdir
|
|
15
15
|
from autogluon.core.utils.decorators import apply_presets
|
|
@@ -23,7 +23,7 @@ from autogluon.timeseries.metrics import TimeSeriesScorer, check_get_evaluation_
|
|
|
23
23
|
from autogluon.timeseries.splitter import ExpandingWindowSplitter
|
|
24
24
|
from autogluon.timeseries.trainer import AbstractTimeSeriesTrainer
|
|
25
25
|
|
|
26
|
-
logger = logging.getLogger(
|
|
26
|
+
logger = logging.getLogger("autogluon.timeseries")
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
class TimeSeriesPredictorDeprecatedMixin:
|
|
@@ -123,9 +123,15 @@ class TimeSeriesPredictor(TimeSeriesPredictorDeprecatedMixin):
|
|
|
123
123
|
verbosity : int, default = 2
|
|
124
124
|
Verbosity levels range from 0 to 4 and control how much information is printed to stdout. Higher levels
|
|
125
125
|
correspond to more detailed print statements, and ``verbosity=0`` suppresses output including warnings.
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
126
|
+
Verbosity 0 corresponds to Python's ERROR log level, where only error outputs will be logged. Verbosity 1 and 2
|
|
127
|
+
will additionally log warnings and info outputs, respectively. Verbosity 4 enables all logging output including
|
|
128
|
+
debug messages from AutoGluon and all logging in dependencies (GluonTS, PyTorch Lightning, AutoGluon-Tabular, etc.)
|
|
129
|
+
log_to_file: bool, default = True
|
|
130
|
+
Whether to save the logs into a file for later reference
|
|
131
|
+
log_file_path: Union[str, Path], default = "auto"
|
|
132
|
+
File path to save the logs.
|
|
133
|
+
If auto, logs will be saved under `predictor_path/logs/predictor_log.txt`.
|
|
134
|
+
Will be ignored if `log_to_file` is set to False
|
|
129
135
|
cache_predictions : bool, default = True
|
|
130
136
|
If True, the predictor will cache and reuse the predictions made by individual models whenever
|
|
131
137
|
:meth:`~autogluon.timeseries.TimeSeriesPredictor.predict`, :meth:`~autogluon.timeseries.TimeSeriesPredictor.leaderboard`,
|
|
@@ -138,6 +144,7 @@ class TimeSeriesPredictor(TimeSeriesPredictorDeprecatedMixin):
|
|
|
138
144
|
|
|
139
145
|
predictor_file_name = "predictor.pkl"
|
|
140
146
|
_predictor_version_file_name = "__version__"
|
|
147
|
+
_predictor_log_file_name = "predictor_log.txt"
|
|
141
148
|
|
|
142
149
|
def __init__(
|
|
143
150
|
self,
|
|
@@ -149,6 +156,8 @@ class TimeSeriesPredictor(TimeSeriesPredictorDeprecatedMixin):
|
|
|
149
156
|
eval_metric_seasonal_period: Optional[int] = None,
|
|
150
157
|
path: Optional[Union[str, Path]] = None,
|
|
151
158
|
verbosity: int = 2,
|
|
159
|
+
log_to_file: bool = True,
|
|
160
|
+
log_file_path: Union[str, Path] = "auto",
|
|
152
161
|
quantile_levels: Optional[List[float]] = None,
|
|
153
162
|
cache_predictions: bool = True,
|
|
154
163
|
learner_type: Optional[Type[AbstractLearner]] = None,
|
|
@@ -159,6 +168,7 @@ class TimeSeriesPredictor(TimeSeriesPredictorDeprecatedMixin):
|
|
|
159
168
|
self.verbosity = verbosity
|
|
160
169
|
set_logger_verbosity(self.verbosity, logger=logger)
|
|
161
170
|
self.path = setup_outputdir(path)
|
|
171
|
+
self._setup_log_to_file(log_to_file=log_to_file, log_file_path=log_file_path)
|
|
162
172
|
|
|
163
173
|
self.cache_predictions = cache_predictions
|
|
164
174
|
if target is not None and label is not None:
|
|
@@ -229,6 +239,14 @@ class TimeSeriesPredictor(TimeSeriesPredictorDeprecatedMixin):
|
|
|
229
239
|
def _trainer(self) -> AbstractTimeSeriesTrainer:
|
|
230
240
|
return self._learner.load_trainer() # noqa
|
|
231
241
|
|
|
242
|
+
def _setup_log_to_file(self, log_to_file: bool, log_file_path: Union[str, Path]) -> None:
|
|
243
|
+
if log_to_file:
|
|
244
|
+
if log_file_path == "auto":
|
|
245
|
+
log_file_path = os.path.join(self.path, "logs", self._predictor_log_file_name)
|
|
246
|
+
log_file_path = os.path.abspath(os.path.normpath(log_file_path))
|
|
247
|
+
os.makedirs(os.path.dirname(log_file_path), exist_ok=True)
|
|
248
|
+
add_log_to_file(log_file_path)
|
|
249
|
+
|
|
232
250
|
def _to_data_frame(
|
|
233
251
|
self,
|
|
234
252
|
data: Union[TimeSeriesDataFrame, pd.DataFrame, str],
|
|
@@ -621,6 +639,10 @@ class TimeSeriesPredictor(TimeSeriesPredictorDeprecatedMixin):
|
|
|
621
639
|
if self._learner.is_fit:
|
|
622
640
|
raise AssertionError("Predictor is already fit! To fit additional models create a new `Predictor`.")
|
|
623
641
|
|
|
642
|
+
if verbosity is None:
|
|
643
|
+
verbosity = self.verbosity
|
|
644
|
+
set_logger_verbosity(verbosity, logger=logger)
|
|
645
|
+
|
|
624
646
|
logger.info("Beginning AutoGluon training..." + (f" Time limit = {time_limit}s" if time_limit else ""))
|
|
625
647
|
logger.info(f"AutoGluon will save models to '{self.path}'")
|
|
626
648
|
logger.info(get_ag_system_info(path=self.path, include_gpu_count=True))
|
|
@@ -628,10 +650,6 @@ class TimeSeriesPredictor(TimeSeriesPredictorDeprecatedMixin):
|
|
|
628
650
|
if hyperparameters is None:
|
|
629
651
|
hyperparameters = "default"
|
|
630
652
|
|
|
631
|
-
if verbosity is None:
|
|
632
|
-
verbosity = self.verbosity
|
|
633
|
-
set_logger_verbosity(verbosity)
|
|
634
|
-
|
|
635
653
|
fit_args = dict(
|
|
636
654
|
prediction_length=self.prediction_length,
|
|
637
655
|
target=self.target,
|
|
@@ -12,7 +12,6 @@ import numpy as np
|
|
|
12
12
|
import pandas as pd
|
|
13
13
|
from tqdm import tqdm
|
|
14
14
|
|
|
15
|
-
from autogluon.common.utils.log_utils import set_logger_verbosity
|
|
16
15
|
from autogluon.common.utils.utils import hash_pandas_df
|
|
17
16
|
from autogluon.core.models import AbstractModel
|
|
18
17
|
from autogluon.core.utils.exceptions import TimeLimitExceeded
|
|
@@ -275,7 +274,6 @@ class AbstractTimeSeriesTrainer(SimpleAbstractTrainer):
|
|
|
275
274
|
self.ensemble_model_type = TimeSeriesGreedyEnsemble
|
|
276
275
|
|
|
277
276
|
self.verbosity = verbosity
|
|
278
|
-
set_logger_verbosity(self.verbosity, logger=logger)
|
|
279
277
|
|
|
280
278
|
# Dict of normal model -> FULL model. FULL models are produced by
|
|
281
279
|
# self.refit_single_full() and self.refit_full().
|
|
@@ -688,9 +686,7 @@ class AbstractTimeSeriesTrainer(SimpleAbstractTrainer):
|
|
|
688
686
|
quantile_levels=self.quantile_levels,
|
|
689
687
|
metadata=self.metadata,
|
|
690
688
|
)
|
|
691
|
-
ensemble.fit_ensemble(
|
|
692
|
-
model_preds, data_per_window=data_per_window, time_limit=time_limit, verbosity=self.verbosity
|
|
693
|
-
)
|
|
689
|
+
ensemble.fit_ensemble(model_preds, data_per_window=data_per_window, time_limit=time_limit)
|
|
694
690
|
ensemble.fit_time = time.time() - time_start
|
|
695
691
|
|
|
696
692
|
predict_time = 0
|
|
@@ -717,6 +713,9 @@ class AbstractTimeSeriesTrainer(SimpleAbstractTrainer):
|
|
|
717
713
|
logger.debug("Generating leaderboard for all models trained")
|
|
718
714
|
|
|
719
715
|
model_names = self.get_model_names()
|
|
716
|
+
if len(model_names) == 0:
|
|
717
|
+
logger.warning("Warning: No models were trained during fit. Resulting leaderboard will be empty.")
|
|
718
|
+
|
|
720
719
|
model_info = {}
|
|
721
720
|
for ix, model_name in enumerate(model_names):
|
|
722
721
|
model_info[model_name] = {
|
|
@@ -754,12 +753,6 @@ class AbstractTimeSeriesTrainer(SimpleAbstractTrainer):
|
|
|
754
753
|
model_info[model_name]["score_test"] = self._score_with_predictions(data, model_preds)
|
|
755
754
|
model_info[model_name]["pred_time_test"] = pred_time_dict[model_name]
|
|
756
755
|
|
|
757
|
-
df = pd.DataFrame(model_info.values())
|
|
758
|
-
|
|
759
|
-
sort_column = "score_test" if "score_test" in df.columns else "score_val"
|
|
760
|
-
df.sort_values(by=[sort_column, "model"], ascending=[False, False], inplace=True)
|
|
761
|
-
df.reset_index(drop=True, inplace=True)
|
|
762
|
-
|
|
763
756
|
explicit_column_order = [
|
|
764
757
|
"model",
|
|
765
758
|
"score_test",
|
|
@@ -769,9 +762,17 @@ class AbstractTimeSeriesTrainer(SimpleAbstractTrainer):
|
|
|
769
762
|
"fit_time_marginal",
|
|
770
763
|
"fit_order",
|
|
771
764
|
]
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
765
|
+
|
|
766
|
+
df = pd.DataFrame(model_info.values(), columns=explicit_column_order)
|
|
767
|
+
if data is None:
|
|
768
|
+
explicit_column_order.remove("score_test")
|
|
769
|
+
explicit_column_order.remove("pred_time_test")
|
|
770
|
+
sort_column = "score_val"
|
|
771
|
+
else:
|
|
772
|
+
sort_column = "score_test"
|
|
773
|
+
|
|
774
|
+
df.sort_values(by=[sort_column, "model"], ascending=[False, False], inplace=True)
|
|
775
|
+
df.reset_index(drop=True, inplace=True)
|
|
775
776
|
|
|
776
777
|
return df[explicit_column_order]
|
|
777
778
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: autogluon.timeseries
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.1b20240206
|
|
4
4
|
Summary: AutoML for Image, Text, and Tabular Data
|
|
5
5
|
Home-page: https://github.com/autogluon/autogluon
|
|
6
6
|
Author: AutoGluon Community
|
|
@@ -11,39 +11,46 @@ Project-URL: Source, https://github.com/autogluon/autogluon/
|
|
|
11
11
|
Project-URL: Contribute!, https://github.com/autogluon/autogluon/blob/master/CONTRIBUTING.md
|
|
12
12
|
Description:
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
<
|
|
16
|
-
<img src="https://user-images.githubusercontent.com/16392542/77208906-224aa500-6aba-11ea-96bd-e81806074030.png" width="350">
|
|
17
|
-
</div>
|
|
14
|
+
<div align="center">
|
|
15
|
+
<img src="https://user-images.githubusercontent.com/16392542/77208906-224aa500-6aba-11ea-96bd-e81806074030.png" width="350">
|
|
18
16
|
|
|
19
17
|
## AutoML for Image, Text, Time Series, and Tabular Data
|
|
20
18
|
|
|
21
19
|
[](https://github.com/autogluon/autogluon/releases)
|
|
22
|
-
[](https://github.com/autogluon/autogluon/actions/workflows/platform_tests-command.yml)
|
|
20
|
+
[](https://anaconda.org/conda-forge/autogluon)
|
|
24
21
|
[](https://pypi.org/project/autogluon/)
|
|
25
|
-
[](./LICENSE)
|
|
26
22
|
[](https://pepy.tech/project/autogluon)
|
|
27
|
-
[](./LICENSE)
|
|
24
|
+
[](https://discord.gg/wjUmjqAc2N)
|
|
28
25
|
[](https://twitter.com/autogluon)
|
|
26
|
+
[](https://github.com/autogluon/autogluon/actions/workflows/continuous_integration.yml)
|
|
27
|
+
[](https://github.com/autogluon/autogluon/actions/workflows/platform_tests-command.yml)
|
|
29
28
|
|
|
30
|
-
[Install Instructions](https://auto.gluon.ai/stable/install.html) | Documentation
|
|
29
|
+
[Install Instructions](https://auto.gluon.ai/stable/install.html) | [Documentation](https://auto.gluon.ai/stable/index.html) | [Release Notes](https://auto.gluon.ai/stable/whats_new/index.html)
|
|
31
30
|
|
|
32
31
|
AutoGluon automates machine learning tasks enabling you to easily achieve strong predictive performance in your applications. With just a few lines of code, you can train and deploy high-accuracy machine learning and deep learning models on image, text, time series, and tabular data.
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
## 💾 Installation
|
|
35
|
+
|
|
36
|
+
AutoGluon is supported on Python 3.8 - 3.11 and is available on Linux, MacOS, and Windows.
|
|
33
37
|
|
|
34
|
-
|
|
38
|
+
You can install AutoGluon with:
|
|
35
39
|
|
|
36
40
|
```python
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
pip install autogluon
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Visit our [Installation Guide](https://auto.gluon.ai/stable/install.html) for detailed instructions, including GPU support, Conda installs, and optional dependencies.
|
|
45
|
+
|
|
46
|
+
## :zap: Quickstart
|
|
47
|
+
|
|
48
|
+
Build accurate end-to-end ML models in just 3 lines of code!
|
|
49
|
+
|
|
50
|
+
```python
|
|
51
|
+
from autogluon.tabular import TabularPredictor
|
|
52
|
+
predictor = TabularPredictor(label="class").fit("train.csv")
|
|
53
|
+
predictions = predictor.predict("test.csv")
|
|
47
54
|
```
|
|
48
55
|
|
|
49
56
|
| AutoGluon Task | Quickstart | API |
|
|
@@ -52,116 +59,50 @@ Description:
|
|
|
52
59
|
| MultiModalPredictor | [](https://auto.gluon.ai/stable/tutorials/multimodal/multimodal_prediction/multimodal-quick-start.html) | [](https://auto.gluon.ai/stable/api/autogluon.multimodal.MultiModalPredictor.html) |
|
|
53
60
|
| TimeSeriesPredictor | [](https://auto.gluon.ai/stable/tutorials/timeseries/forecasting-quick-start.html) | [](https://auto.gluon.ai/stable/api/autogluon.timeseries.TimeSeriesPredictor.html) |
|
|
54
61
|
|
|
55
|
-
## Resources
|
|
62
|
+
## :mag: Resources
|
|
56
63
|
|
|
57
|
-
|
|
58
|
-
- [Installing AutoGluon](https://auto.gluon.ai/stable/index.html#installation)
|
|
59
|
-
- [Learning with tabular data](https://auto.gluon.ai/stable/tutorials/tabular/tabular-quick-start.html)
|
|
60
|
-
- [Tips to maximize accuracy](https://auto.gluon.ai/stable/tutorials/tabular/tabular-essentials.html#maximizing-predictive-performance) (if **benchmarking**, make sure to run `fit()` with argument `presets='best_quality'`).
|
|
64
|
+
### Hands-on Tutorials / Talks
|
|
61
65
|
|
|
62
|
-
|
|
63
|
-
- [Learning with time series data](https://auto.gluon.ai/stable/tutorials/timeseries/forecasting-quick-start.html)
|
|
66
|
+
Below is a curated list of recent tutorials and talks on AutoGluon. A comprehensive list is available [here](AWESOME.md#videos--tutorials).
|
|
64
67
|
|
|
65
|
-
|
|
68
|
+
| Title | Format | Location | Date |
|
|
69
|
+
|--------------------------------------------------------------------------------------------------------------------------|----------|----------------------------------------------------------------------------------|------------|
|
|
70
|
+
| :tv: [AutoGluon 1.0: Shattering the AutoML Ceiling with Zero Lines of Code](https://www.youtube.com/watch?v=5tvp_Ihgnuk) | Tutorial | [AutoML Conf 2023](https://2023.automl.cc/) | 2023/09/12 |
|
|
71
|
+
| :sound: [AutoGluon: The Story](https://automlpodcast.com/episode/autogluon-the-story) | Podcast | [The AutoML Podcast](https://automlpodcast.com/) | 2023/09/05 |
|
|
72
|
+
| :tv: [AutoGluon: AutoML for Tabular, Multimodal, and Time Series Data](https://youtu.be/Lwu15m5mmbs?si=jSaFJDqkTU27C0fa) | Tutorial | PyData Berlin | 2023/06/20 |
|
|
73
|
+
| :tv: [Solving Complex ML Problems in a few Lines of Code with AutoGluon](https://www.youtube.com/watch?v=J1UQUCPB88I) | Tutorial | PyData Seattle | 2023/06/20 |
|
|
74
|
+
| :tv: [The AutoML Revolution](https://www.youtube.com/watch?v=VAAITEds-28) | Tutorial | [Fall AutoML School 2022](https://sites.google.com/view/automl-fall-school-2022) | 2022/10/18 |
|
|
66
75
|
|
|
67
76
|
### Scientific Publications
|
|
68
|
-
- [AutoGluon-Tabular: Robust and Accurate AutoML for Structured Data](https://arxiv.org/pdf/2003.06505.pdf) (*Arxiv*, 2020)
|
|
69
|
-
- [Fast, Accurate, and Simple Models for Tabular Data via Augmented Distillation](https://proceedings.neurips.cc/paper/2020/hash/62d75fb2e3075506e8837d8f55021ab1-Abstract.html) (*NeurIPS*, 2020)
|
|
70
|
-
- [Multimodal AutoML
|
|
77
|
+
- [AutoGluon-Tabular: Robust and Accurate AutoML for Structured Data](https://arxiv.org/pdf/2003.06505.pdf) (*Arxiv*, 2020) ([BibTeX](CITING.md#general-usage--autogluontabular))
|
|
78
|
+
- [Fast, Accurate, and Simple Models for Tabular Data via Augmented Distillation](https://proceedings.neurips.cc/paper/2020/hash/62d75fb2e3075506e8837d8f55021ab1-Abstract.html) (*NeurIPS*, 2020) ([BibTeX](CITING.md#tabular-distillation))
|
|
79
|
+
- [Benchmarking Multimodal AutoML for Tabular Data with Text Fields](https://datasets-benchmarks-proceedings.neurips.cc/paper/2021/file/9bf31c7ff062936a96d3c8bd1f8f2ff3-Paper-round2.pdf) (*NeurIPS*, 2021) ([BibTeX](CITING.md#autogluonmultimodal))
|
|
80
|
+
- [XTab: Cross-table Pretraining for Tabular Transformers](https://proceedings.mlr.press/v202/zhu23k/zhu23k.pdf) (*ICML*, 2023)
|
|
81
|
+
- [AutoGluon-TimeSeries: AutoML for Probabilistic Time Series Forecasting](https://arxiv.org/abs/2308.05566) (*AutoML Conf*, 2023) ([BibTeX](CITING.md#autogluontimeseries))
|
|
82
|
+
- [TabRepo: A Large Scale Repository of Tabular Model Evaluations and its AutoML Applications](https://arxiv.org/pdf/2311.02971.pdf) (*Under Review*, 2024)
|
|
71
83
|
|
|
72
84
|
### Articles
|
|
85
|
+
- [AutoGluon-TimeSeries: Every Time Series Forecasting Model In One Library](https://towardsdatascience.com/autogluon-timeseries-every-time-series-forecasting-model-in-one-library-29a3bf6879db) (*Towards Data Science*, Jan 2024)
|
|
73
86
|
- [AutoGluon for tabular data: 3 lines of code to achieve top 1% in Kaggle competitions](https://aws.amazon.com/blogs/opensource/machine-learning-with-autogluon-an-open-source-automl-library/) (*AWS Open Source Blog*, Mar 2020)
|
|
74
|
-
- [Accurate image classification in 3 lines of code with AutoGluon](https://medium.com/@zhanghang0704/image-classification-on-kaggle-using-autogluon-fc896e74d7e8) (*Medium*, Feb 2020)
|
|
75
87
|
- [AutoGluon overview & example applications](https://towardsdatascience.com/autogluon-deep-learning-automl-5cdb4e2388ec?source=friends_link&sk=e3d17d06880ac714e47f07f39178fdf2) (*Towards Data Science*, Dec 2019)
|
|
76
88
|
|
|
77
|
-
### Hands-on Tutorials
|
|
78
|
-
- [Practical Automated Machine Learning with Tabular, Text, and Image Data (KDD 2020)](https://jwmueller.github.io/KDD20-tutorial/)
|
|
79
|
-
|
|
80
89
|
### Train/Deploy AutoGluon in the Cloud
|
|
81
|
-
- [AutoGluon
|
|
82
|
-
- [AutoGluon
|
|
83
|
-
- [AutoGluon
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
We are actively accepting code contributions to the AutoGluon project. If you are interested in contributing to AutoGluon, please read the [Contributing Guide](https://github.com/autogluon/autogluon/blob/master/CONTRIBUTING.md) to get started.
|
|
88
|
-
|
|
89
|
-
## Citing AutoGluon
|
|
90
|
+
- [AutoGluon Cloud](https://auto.gluon.ai/cloud/stable/index.html) (Recommended)
|
|
91
|
+
- [AutoGluon on SageMaker AutoPilot](https://auto.gluon.ai/stable/tutorials/cloud_fit_deploy/autopilot-autogluon.html)
|
|
92
|
+
- [AutoGluon on Amazon SageMaker](https://auto.gluon.ai/stable/tutorials/cloud_fit_deploy/cloud-aws-sagemaker-train-deploy.html)
|
|
93
|
+
- [AutoGluon Deep Learning Containers](https://github.com/aws/deep-learning-containers/blob/master/available_images.md#autogluon-training-containers) (Security certified & maintained by the AutoGluon developers)
|
|
94
|
+
- [AutoGluon Official Docker Container](https://hub.docker.com/r/autogluon/autogluon)
|
|
95
|
+
- [AutoGluon-Tabular on AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-n4zf5pmjt7ism) (Not maintained by us)
|
|
90
96
|
|
|
91
|
-
|
|
97
|
+
## :pencil: Citing AutoGluon
|
|
92
98
|
|
|
93
|
-
|
|
99
|
+
If you use AutoGluon in a scientific publication, please refer to our [citation guide](CITING.md).
|
|
94
100
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
```bibtex
|
|
98
|
-
@article{agtabular,
|
|
99
|
-
title={AutoGluon-Tabular: Robust and Accurate AutoML for Structured Data},
|
|
100
|
-
author={Erickson, Nick and Mueller, Jonas and Shirkov, Alexander and Zhang, Hang and Larroy, Pedro and Li, Mu and Smola, Alexander},
|
|
101
|
-
journal={arXiv preprint arXiv:2003.06505},
|
|
102
|
-
year={2020}
|
|
103
|
-
}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
If you are using AutoGluon Tabular's model distillation functionality, please cite the following paper:
|
|
107
|
-
|
|
108
|
-
Fakoor, Rasool, et al. ["Fast, Accurate, and Simple Models for Tabular Data via Augmented Distillation."](https://proceedings.neurips.cc/paper/2020/hash/62d75fb2e3075506e8837d8f55021ab1-Abstract.html) Advances in Neural Information Processing Systems 33 (2020).
|
|
109
|
-
|
|
110
|
-
BibTeX entry:
|
|
111
|
-
|
|
112
|
-
```bibtex
|
|
113
|
-
@article{agtabulardistill,
|
|
114
|
-
title={Fast, Accurate, and Simple Models for Tabular Data via Augmented Distillation},
|
|
115
|
-
author={Fakoor, Rasool and Mueller, Jonas W and Erickson, Nick and Chaudhari, Pratik and Smola, Alexander J},
|
|
116
|
-
journal={Advances in Neural Information Processing Systems},
|
|
117
|
-
volume={33},
|
|
118
|
-
year={2020}
|
|
119
|
-
}
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
If you use AutoGluon's multimodal text+tabular functionality in a scientific publication, please cite the following paper:
|
|
123
|
-
|
|
124
|
-
Shi, Xingjian, et al. ["Multimodal AutoML on Structured Tables with Text Fields."](https://openreview.net/forum?id=OHAIVOOl7Vl) 8th ICML Workshop on Automated Machine Learning (AutoML). 2021.
|
|
125
|
-
|
|
126
|
-
BibTeX entry:
|
|
127
|
-
|
|
128
|
-
```bibtex
|
|
129
|
-
@inproceedings{agmultimodaltext,
|
|
130
|
-
title={Multimodal AutoML on Structured Tables with Text Fields},
|
|
131
|
-
author={Shi, Xingjian and Mueller, Jonas and Erickson, Nick and Li, Mu and Smola, Alex},
|
|
132
|
-
booktitle={8th ICML Workshop on Automated Machine Learning (AutoML)},
|
|
133
|
-
year={2021}
|
|
134
|
-
}
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
If you use AutoGluon's time series forecasting functionality in a scientific publication, please cite the following paper:
|
|
138
|
-
```bibtex
|
|
139
|
-
@inproceedings{agtimeseries,
|
|
140
|
-
title={{AutoGluon-TimeSeries}: {AutoML} for Probabilistic Time Series Forecasting},
|
|
141
|
-
author={Shchur, Oleksandr and Turkmen, Caner and Erickson, Nick and Shen, Huibin and Shirkov, Alexander and Hu, Tony and Wang, Yuyang},
|
|
142
|
-
booktitle={International Conference on Automated Machine Learning},
|
|
143
|
-
year={2023}
|
|
144
|
-
}
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
## AutoGluon for Hyperparameter Optimization
|
|
149
|
-
|
|
150
|
-
AutoGluon's state-of-the-art tools for hyperparameter optimization, such as ASHA, Hyperband, Bayesian Optimization and BOHB have moved to the stand-alone package [syne-tune](https://github.com/awslabs/syne-tune).
|
|
151
|
-
|
|
152
|
-
To learn more, checkout our paper ["Model-based Asynchronous Hyperparameter and Neural Architecture Search"](https://arxiv.org/abs/2003.10865) arXiv preprint arXiv:2003.10865 (2020).
|
|
153
|
-
|
|
154
|
-
```bibtex
|
|
155
|
-
@article{abohb,
|
|
156
|
-
title={Model-based Asynchronous Hyperparameter and Neural Architecture Search},
|
|
157
|
-
author={Klein, Aaron and Tiao, Louis and Lienart, Thibaut and Archambeau, Cedric and Seeger, Matthias},
|
|
158
|
-
journal={arXiv preprint arXiv:2003.10865},
|
|
159
|
-
year={2020}
|
|
160
|
-
}
|
|
161
|
-
```
|
|
101
|
+
## :wave: How to get involved
|
|
162
102
|
|
|
103
|
+
We are actively accepting code contributions to the AutoGluon project. If you are interested in contributing to AutoGluon, please read the [Contributing Guide](https://github.com/autogluon/autogluon/blob/master/CONTRIBUTING.md) to get started.
|
|
163
104
|
|
|
164
|
-
## License
|
|
105
|
+
## :classical_building: License
|
|
165
106
|
|
|
166
107
|
This library is licensed under the Apache 2.0 License.
|
|
167
108
|
|
|
@@ -14,9 +14,9 @@ utilsforecast<0.0.11,>=0.0.10
|
|
|
14
14
|
tqdm<5,>=4.38
|
|
15
15
|
orjson~=3.9
|
|
16
16
|
tensorboard<3,>=2.9
|
|
17
|
-
autogluon.core[raytune]==1.0.
|
|
18
|
-
autogluon.common==1.0.
|
|
19
|
-
autogluon.tabular[catboost,lightgbm,xgboost]==1.0.
|
|
17
|
+
autogluon.core[raytune]==1.0.1b20240206
|
|
18
|
+
autogluon.common==1.0.1b20240206
|
|
19
|
+
autogluon.tabular[catboost,lightgbm,xgboost]==1.0.1b20240206
|
|
20
20
|
|
|
21
21
|
[all]
|
|
22
22
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|