autots 0.2.2__tar.gz → 0.2.3__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.
- {AutoTS-0.2.2 → AutoTS-0.2.3/AutoTS.egg-info}/PKG-INFO +3 -1
- {AutoTS-0.2.2 → AutoTS-0.2.3}/AutoTS.egg-info/SOURCES.txt +1 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/AutoTS.egg-info/requires.txt +1 -0
- {AutoTS-0.2.2/AutoTS.egg-info → AutoTS-0.2.3}/PKG-INFO +3 -1
- {AutoTS-0.2.2 → AutoTS-0.2.3}/README.md +2 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/TODO.md +67 -38
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/__init__.py +11 -3
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/datasets/__init__.py +1 -1
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/datasets/_base.py +20 -15
- AutoTS-0.2.3/autots/datasets/fred.py +72 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/evaluator/__init__.py +0 -1
- AutoTS-0.2.3/autots/evaluator/auto_model.py +1855 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/evaluator/auto_ts.py +602 -314
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/evaluator/metrics.py +65 -38
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/models/__init__.py +0 -1
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/models/basics.py +502 -291
- AutoTS-0.2.3/autots/models/dnn.py +157 -0
- AutoTS-0.2.3/autots/models/ensemble.py +708 -0
- AutoTS-0.2.3/autots/models/gluonts.py +352 -0
- AutoTS-0.2.3/autots/models/prophet.py +270 -0
- AutoTS-0.2.3/autots/models/sklearn.py +1501 -0
- AutoTS-0.2.3/autots/models/statsmodels.py +1709 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/models/tfp.py +283 -188
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/models/tsfresh.py +187 -104
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/templates/__init__.py +0 -1
- AutoTS-0.2.3/autots/templates/general.py +132 -0
- AutoTS-0.2.3/autots/tools/__init__.py +3 -0
- AutoTS-0.2.3/autots/tools/cpu_count.py +51 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/tools/hierarchial.py +28 -9
- AutoTS-0.2.3/autots/tools/holiday.py +55 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/tools/impute.py +6 -4
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/tools/probabilistic.py +64 -42
- AutoTS-0.2.3/autots/tools/profile.py +35 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/tools/shaping.py +86 -50
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/tools/transform.py +567 -331
- AutoTS-0.2.3/docs/build/doctrees/environment.pickle +0 -0
- AutoTS-0.2.3/docs/build/doctrees/source/autots.doctree +0 -0
- AutoTS-0.2.3/docs/build/doctrees/source/autots.evaluator.doctree +0 -0
- AutoTS-0.2.3/docs/build/doctrees/source/autots.models.doctree +0 -0
- AutoTS-0.2.3/docs/build/doctrees/source/autots.tools.doctree +0 -0
- AutoTS-0.2.3/docs/build/doctrees/source/intro.doctree +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/doctrees/source/tutorial.doctree +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/.buildinfo +1 -1
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/autots.tools.rst.txt +8 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/documentation_options.js +1 -1
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/genindex.html +5 -1
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/index.html +1 -1
- AutoTS-0.2.3/docs/build/html/objects.inv +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/py-modindex.html +6 -1
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/search.html +1 -1
- AutoTS-0.2.3/docs/build/html/searchindex.js +1 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/autots.datasets.html +1 -1
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/autots.evaluator.html +15 -12
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/autots.html +4 -2
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/autots.models.html +20 -20
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/autots.templates.html +1 -1
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/autots.tools.html +20 -2
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/intro.html +3 -1
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/modules.html +2 -1
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/tutorial.html +27 -16
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/conf.py +1 -1
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/autots.tools.rst +8 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/extended_tutorial.md +23 -15
- {AutoTS-0.2.2 → AutoTS-0.2.3}/setup.py +2 -2
- {AutoTS-0.2.2 → AutoTS-0.2.3}/test.py +69 -20
- AutoTS-0.2.2/autots/datasets/fred.py +0 -59
- AutoTS-0.2.2/autots/evaluator/auto_model.py +0 -1361
- AutoTS-0.2.2/autots/models/dnn.py +0 -127
- AutoTS-0.2.2/autots/models/ensemble.py +0 -547
- AutoTS-0.2.2/autots/models/gluonts.py +0 -286
- AutoTS-0.2.2/autots/models/prophet.py +0 -182
- AutoTS-0.2.2/autots/models/sklearn.py +0 -1208
- AutoTS-0.2.2/autots/models/statsmodels.py +0 -1265
- AutoTS-0.2.2/autots/templates/general.py +0 -90
- AutoTS-0.2.2/autots/tools/__init__.py +0 -3
- AutoTS-0.2.2/autots/tools/holiday.py +0 -44
- AutoTS-0.2.2/autots/tools/profile.py +0 -25
- AutoTS-0.2.2/docs/build/doctrees/environment.pickle +0 -0
- AutoTS-0.2.2/docs/build/doctrees/source/autots.doctree +0 -0
- AutoTS-0.2.2/docs/build/doctrees/source/autots.evaluator.doctree +0 -0
- AutoTS-0.2.2/docs/build/doctrees/source/autots.models.doctree +0 -0
- AutoTS-0.2.2/docs/build/doctrees/source/autots.tools.doctree +0 -0
- AutoTS-0.2.2/docs/build/doctrees/source/intro.doctree +0 -0
- AutoTS-0.2.2/docs/build/html/objects.inv +0 -0
- AutoTS-0.2.2/docs/build/html/searchindex.js +0 -1
- {AutoTS-0.2.2 → AutoTS-0.2.3}/.gitignore +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/AutoTS.egg-info/dependency_links.txt +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/AutoTS.egg-info/top_level.txt +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/LICENSE +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/MANIFEST.in +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/datasets/data/eia_weekly.zip +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/datasets/data/fred_monthly.zip +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/datasets/data/fred_yearly.csv +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/datasets/data/toy_daily.csv +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/datasets/data/traffic_hourly.zip +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/templates/generic_template.csv +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/.gitignore +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/.nojekyll +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/Makefile +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/_config.yml +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/_static/autots_logo.png +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/doctrees/index.doctree +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/doctrees/source/autots.datasets.doctree +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/doctrees/source/autots.templates.doctree +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/doctrees/source/modules.doctree +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/.nojekyll +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/index.rst.txt +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/autots.datasets.rst.txt +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/autots.evaluator.rst.txt +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/autots.models.rst.txt +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/autots.rst.txt +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/autots.templates.rst.txt +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/intro.rst.txt +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/modules.rst.txt +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/tutorial.rst.txt +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/alabaster.css +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/autots_logo.png +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/basic.css +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/custom.css +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/doctools.js +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/file.png +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/jquery-3.4.1.js +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/jquery.js +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/language_data.js +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/minus.png +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/plus.png +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/pygments.css +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/searchtools.js +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/underscore-1.3.1.js +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/underscore.js +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/index.html +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/index.rst +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/make.bat +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/autots.datasets.rst +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/autots.evaluator.rst +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/autots.models.rst +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/autots.rst +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/autots.templates.rst +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/intro.rst +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/modules.rst +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/tutorial.rst +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/img/autots_logo.jpg +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/img/autots_logo.png +0 -0
- {AutoTS-0.2.2 → AutoTS-0.2.3}/setup.cfg +0 -0
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: AutoTS
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
4
4
|
Summary: Automated Time Series Forecasting
|
|
5
5
|
Home-page: https://github.com/winedarksea/AutoTS
|
|
6
6
|
Author: Colin Catlin
|
|
7
7
|
Author-email: colin.catlin@syllepsis.live
|
|
8
8
|
License: MIT
|
|
9
9
|
Description: # AutoTS
|
|
10
|
+
[](https://pypi.python.org/pypi/autots/)
|
|
11
|
+
[](https://pypi.python.org/pypi/autots/)
|
|
10
12
|
|
|
11
13
|
<img src="/img/autots_logo.png" width="400" height="184" title="AutoTS Logo">
|
|
12
14
|
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: AutoTS
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
4
4
|
Summary: Automated Time Series Forecasting
|
|
5
5
|
Home-page: https://github.com/winedarksea/AutoTS
|
|
6
6
|
Author: Colin Catlin
|
|
7
7
|
Author-email: colin.catlin@syllepsis.live
|
|
8
8
|
License: MIT
|
|
9
9
|
Description: # AutoTS
|
|
10
|
+
[](https://pypi.python.org/pypi/autots/)
|
|
11
|
+
[](https://pypi.python.org/pypi/autots/)
|
|
10
12
|
|
|
11
13
|
<img src="/img/autots_logo.png" width="400" height="184" title="AutoTS Logo">
|
|
12
14
|
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
# AutoTS
|
|
2
|
+
[](https://pypi.python.org/pypi/autots/)
|
|
3
|
+
[](https://pypi.python.org/pypi/autots/)
|
|
2
4
|
|
|
3
5
|
<img src="/img/autots_logo.png" width="400" height="184" title="AutoTS Logo">
|
|
4
6
|
|
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
# Basic Tenants
|
|
2
|
-
* Ease of Use > Accuracy > Speed
|
|
2
|
+
* Ease of Use > Accuracy > Speed (with speed more important with 'fast' selections)
|
|
3
|
+
* The goal is to be able to run a horizontal ensemble prediction on 1,000 series/hour with a 'fast' selection, 10,000 series/hour with 'very fast'.
|
|
4
|
+
* Availability of models which share information among series
|
|
3
5
|
* All models should be probabilistic (upper/lower forecasts)
|
|
4
|
-
* All models should be able to handle multiple parallel time series
|
|
5
|
-
* The expectation is series will largely be consistent in period, or at least up-sampled to regular intervals
|
|
6
|
+
* All models should be able to handle multiple parallel time series
|
|
6
7
|
* New transformations should be applicable to many datasets and models
|
|
7
8
|
* New models need only be sometimes applicable
|
|
8
9
|
* Fault tolerance: it is perfectly acceptable for model parameters to fail on some datasets, the higher level API will pass over and use others.
|
|
10
|
+
* Missing data tolerance: large chunks of data can be missing and model will still produce reasonable results (although lower quality than if data is available)
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
|
|
12
|
+
## Assumptions on Data
|
|
13
|
+
* Series will largely be consistent in period, or at least up-sampled to regular intervals
|
|
14
|
+
* The most recent data will generally be the most important
|
|
15
|
+
* Forecasts are desired for the future immediately following the most recent data.
|
|
16
|
+
|
|
17
|
+
# Latest
|
|
18
|
+
* Added n_jobs parameters to pass through to joblib (although a joblib context manager is perhaps the best way)
|
|
19
|
+
* Added joblib multiprocessing to ETS, GLM, and FBProphet
|
|
20
|
+
* Fixed future warnings with pandas.DatetimeIndex.week and changes to statsmodels ETS
|
|
21
|
+
* standardized source code formatting
|
|
15
22
|
|
|
16
23
|
# Errors:
|
|
17
24
|
DynamicFactor holidays Exceptions 'numpy.ndarray' object has no attribute 'values'
|
|
@@ -24,7 +31,7 @@ VAR ValueError('Length of passed values is 4, index implies 9',)
|
|
|
24
31
|
WindowRegression + KerasRNN + 1step + univariate = ValueError('Length mismatch: Expected axis has 54 elements, new values have 9 elements',)
|
|
25
32
|
Is Template Eval Error: ValueError('array must not contain infs or NaNs',) related to Point to Probability HISTORIC QUANTILE?
|
|
26
33
|
'Fake Date' doesn't work on entirely NaN series - ValueError('Found array with 0 sample(s) (shape=(0, 1)) while a minimum of 1 is required.',)
|
|
27
|
-
|
|
34
|
+
ValueError: percentiles should all be in the interval [0, 1]. Try [-0.00089 0.01089] instead. .sample in Motif Simulation line 729 point_method == 'sample'
|
|
28
35
|
|
|
29
36
|
### Ignored Errors:
|
|
30
37
|
xgboost poisson loss does not accept negatives
|
|
@@ -32,35 +39,59 @@ GluonTS not accepting quite a lot of frequencies
|
|
|
32
39
|
KerasRNN errors due to parameters not working on all dataset
|
|
33
40
|
Tensorflow GPU backend may crash on occasion.
|
|
34
41
|
|
|
35
|
-
##
|
|
42
|
+
## Concerns
|
|
43
|
+
* resource utilization at scale
|
|
44
|
+
* improve horizontal ensembling efficiency in particular
|
|
45
|
+
* structure of General Transformer
|
|
46
|
+
* overfitting on first train segment (train progressive subsets?)
|
|
47
|
+
* End Users add their own models
|
|
48
|
+
* improve starting templates (sorta best to wait until other things ironed out)
|
|
49
|
+
* Improve documentation and usability of lower level code
|
|
50
|
+
* better metrics, perhaps improve contour
|
|
51
|
+
* better summarization of many time series into a few high-information time series as parallel or regressors
|
|
52
|
+
* Ability to automatically add useful global information as regressors or parallel series
|
|
53
|
+
* Built in GUI or Command Line tools
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
## To-Do
|
|
57
|
+
* Remove SP500 from AutoTS
|
|
58
|
+
* ARIMA deprecation in Statsmodels
|
|
59
|
+
* Migrate to-do to GitHub issues and project board
|
|
60
|
+
* GitHub badges in Readme, GitHub Actions flake8
|
|
61
|
+
* Horizontal improvements
|
|
62
|
+
* don't run univariate models on all series, only on needed series
|
|
63
|
+
* generalizable from run on only a subset
|
|
64
|
+
* handle failure of a lower level model on some series (but not for dist variants)
|
|
65
|
+
* remove 'horizontal' sanity check run, takes too longer
|
|
66
|
+
* allow multiprocessing for each model of horizontal
|
|
67
|
+
* allow multiprocessing to models, pass through num_process + **kwargs
|
|
68
|
+
* User friendly:
|
|
69
|
+
* clean up lower level
|
|
70
|
+
* make passing in own models easy
|
|
71
|
+
* clean up base model object
|
|
72
|
+
* Make preprocessing templates more flexible...
|
|
73
|
+
* Speed:
|
|
74
|
+
* Fast window regression only
|
|
75
|
+
* Fast MotifSimulation
|
|
76
|
+
* could memoization of pairwise comparisons be possible? (joblib)
|
|
77
|
+
* Improve templates
|
|
78
|
+
* 'fake date' dataset with high diversity of series to train on
|
|
79
|
+
|
|
80
|
+
|
|
36
81
|
* Profile slow parts of AutoTS on 1,000 series
|
|
37
82
|
* remove slow transformers unless parameter
|
|
38
83
|
* 'fast' option for RandomTransformations generator
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
Dicts instead of list of DFs
|
|
50
|
-
Create model_id even if forecast fails
|
|
51
|
-
Best3 to work on model failure
|
|
52
|
-
Make best 3 work on any given length of ensembles (more than 3, down to 1)
|
|
53
|
-
Rename from Best3
|
|
54
|
-
Add 'model_count' to parameters
|
|
55
|
-
Horizontal to work on model failure
|
|
56
|
-
Use same process as to generalize to untested models
|
|
57
|
-
Dist to fail on model failure
|
|
58
|
-
HDist to fail on model failure
|
|
59
|
-
|
|
60
|
-
# To-Do
|
|
84
|
+
* have subsetting sample for diversity, not just random
|
|
85
|
+
* cleanse similar models out first, before horizontal ensembling
|
|
86
|
+
* Best3Ensemble
|
|
87
|
+
* Work on model failure
|
|
88
|
+
* Rename from Best3 to BestN
|
|
89
|
+
* Dicts instead of list of DFs
|
|
90
|
+
* Add 'model_count' to parameters
|
|
91
|
+
|
|
92
|
+
* check models from M5 competition results
|
|
93
|
+
* minmaxscaler as scoring for weighted Score generation
|
|
61
94
|
* drop duplicates as function of TemplateEvalObject
|
|
62
|
-
* speed up MotifSimulation
|
|
63
|
-
* fake date dataset of many series to improve General Template
|
|
64
95
|
* optimize randomtransform probabilities
|
|
65
96
|
* improve test.py script for actual testing of many features
|
|
66
97
|
* Add to template: Gluon, Motif, WindowRegression
|
|
@@ -95,11 +126,9 @@ HDist to fail on model failure
|
|
|
95
126
|
* Modify GluonStart if lots of NaN at start of that series
|
|
96
127
|
* GPU and CPU ctx
|
|
97
128
|
* implement 'borrow' Genetic Recombination for ComponentAnalysis
|
|
98
|
-
* Regressor to TensorflowSTS
|
|
99
129
|
* Relative/Absolute Imports and reduce package reloading messages
|
|
100
130
|
* Replace OrdinalEncoder with non-external code
|
|
101
131
|
* 'Age' regressor as an option in addition to User/Holiday in ARIMA, etc.
|
|
102
|
-
* Speed improvements, Profiling
|
|
103
132
|
* Multiprocessing or Distributed options (Dask) for general greater speed
|
|
104
133
|
* Improve usability on rarer frequenices (ie monthly data where some series start on 1st, others on 15th, etc.)
|
|
105
134
|
* Figures: Add option to output figures of train/test + forecast, other performance figures
|
|
@@ -111,7 +140,6 @@ HDist to fail on model failure
|
|
|
111
140
|
* Code/documentation quality checkers
|
|
112
141
|
* Ability to automatically add external datasets of parallel time series of global usability (ie from FRED or others)
|
|
113
142
|
* make datetime input optional, just allow dataframes of numbers
|
|
114
|
-
* Option to import either long or wide data
|
|
115
143
|
* Infer column names for df_long to wide based on which is datetime, which is string, and which is numeric
|
|
116
144
|
|
|
117
145
|
### Links
|
|
@@ -153,7 +181,8 @@ HDist to fail on model failure
|
|
|
153
181
|
TPOT if it adds multioutput functionality
|
|
154
182
|
https://towardsdatascience.com/pyspark-forecasting-with-pandas-udf-and-fb-prophet-e9d70f86d802
|
|
155
183
|
Compressive Transformer
|
|
156
|
-
Reinforcement Learning
|
|
184
|
+
Reinforcement Learning with online forecasting?
|
|
185
|
+
|
|
157
186
|
|
|
158
187
|
#### New Transformations:
|
|
159
188
|
Sklearn iterative imputer
|
|
@@ -13,11 +13,19 @@ from autots.evaluator.auto_ts import AutoTS
|
|
|
13
13
|
from autots.tools.transform import GeneralTransformer
|
|
14
14
|
from autots.tools.shaping import long_to_wide
|
|
15
15
|
|
|
16
|
-
__version__ = '0.2.
|
|
16
|
+
__version__ = '0.2.3'
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
__all__ = [
|
|
20
|
-
|
|
19
|
+
__all__ = [
|
|
20
|
+
'load_daily',
|
|
21
|
+
'load_monthly',
|
|
22
|
+
'load_yearly',
|
|
23
|
+
'load_hourly',
|
|
24
|
+
'load_weekly',
|
|
25
|
+
'AutoTS',
|
|
26
|
+
'GeneralTransformer',
|
|
27
|
+
'long_to_wide',
|
|
28
|
+
]
|
|
21
29
|
|
|
22
30
|
# import logging
|
|
23
31
|
# logger = logging.getLogger(__name__)
|
|
@@ -7,4 +7,4 @@ from autots.datasets._base import load_yearly
|
|
|
7
7
|
from autots.datasets._base import load_hourly
|
|
8
8
|
from autots.datasets._base import load_weekly
|
|
9
9
|
|
|
10
|
-
__all__ = ['load_daily', 'load_monthly', 'load_yearly', 'load_hourly', 'load_weekly']
|
|
10
|
+
__all__ = ['load_daily', 'load_monthly', 'load_yearly', 'load_hourly', 'load_weekly']
|
|
@@ -9,8 +9,9 @@ def load_daily():
|
|
|
9
9
|
data_file_name = join(module_path, 'data', 'toy_daily.csv')
|
|
10
10
|
|
|
11
11
|
df_long = pd.read_csv(data_file_name)
|
|
12
|
-
df_long['datetime'] = pd.to_datetime(
|
|
13
|
-
|
|
12
|
+
df_long['datetime'] = pd.to_datetime(
|
|
13
|
+
df_long['datetime'], infer_datetime_format=True
|
|
14
|
+
)
|
|
14
15
|
|
|
15
16
|
return df_long
|
|
16
17
|
|
|
@@ -19,9 +20,9 @@ def load_fred_monthly():
|
|
|
19
20
|
"""
|
|
20
21
|
Federal Reserve of St. Louis.
|
|
21
22
|
from autots.datasets.fred import get_fred_data
|
|
22
|
-
SeriesNameDict = {'GS10':'10-Year Treasury Constant Maturity Rate',
|
|
23
|
-
'MCOILWTICO':'Crude Oil West Texas Intermediate Cushing Oklahoma',
|
|
24
|
-
'CSUSHPISA': ' U.S. National Home Price Index',
|
|
23
|
+
SeriesNameDict = {'GS10':'10-Year Treasury Constant Maturity Rate',
|
|
24
|
+
'MCOILWTICO':'Crude Oil West Texas Intermediate Cushing Oklahoma',
|
|
25
|
+
'CSUSHPISA': ' U.S. National Home Price Index',
|
|
25
26
|
'EXUSEU': 'US Euro Foreign Exchange Rate',
|
|
26
27
|
'EXCHUS': 'China US Foreign Exchange Rate',
|
|
27
28
|
'EXCAUS' : 'Canadian to US Dollar Exchange Rate Daily',
|
|
@@ -35,8 +36,9 @@ def load_fred_monthly():
|
|
|
35
36
|
data_file_name = join(module_path, 'data', 'fred_monthly.zip')
|
|
36
37
|
|
|
37
38
|
df_long = pd.read_csv(data_file_name, compression='zip')
|
|
38
|
-
df_long['datetime'] = pd.to_datetime(
|
|
39
|
-
|
|
39
|
+
df_long['datetime'] = pd.to_datetime(
|
|
40
|
+
df_long['datetime'], infer_datetime_format=True
|
|
41
|
+
)
|
|
40
42
|
|
|
41
43
|
return df_long
|
|
42
44
|
|
|
@@ -51,7 +53,7 @@ def load_fred_yearly():
|
|
|
51
53
|
Federal Reserve of St. Louis.
|
|
52
54
|
from autots.datasets.fred import get_fred_data
|
|
53
55
|
SSeriesNameDict = {'GDPA':"Gross Domestic Product",
|
|
54
|
-
'ACOILWTICO':'Crude Oil West Texas Intermediate Cushing Oklahoma',
|
|
56
|
+
'ACOILWTICO':'Crude Oil West Texas Intermediate Cushing Oklahoma',
|
|
55
57
|
'AEXUSEU': 'US Euro Foreign Exchange Rate',
|
|
56
58
|
'AEXCHUS': 'China US Foreign Exchange Rate',
|
|
57
59
|
'AEXCAUS' : 'Canadian to US Dollar Exchange Rate Daily',
|
|
@@ -69,8 +71,9 @@ def load_fred_yearly():
|
|
|
69
71
|
data_file_name = join(module_path, 'data', 'fred_yearly.csv')
|
|
70
72
|
|
|
71
73
|
df_long = pd.read_csv(data_file_name)
|
|
72
|
-
df_long['datetime'] = pd.to_datetime(
|
|
73
|
-
|
|
74
|
+
df_long['datetime'] = pd.to_datetime(
|
|
75
|
+
df_long['datetime'], infer_datetime_format=True
|
|
76
|
+
)
|
|
74
77
|
|
|
75
78
|
return df_long
|
|
76
79
|
|
|
@@ -82,15 +85,16 @@ def load_yearly():
|
|
|
82
85
|
|
|
83
86
|
def load_traffic_hourly():
|
|
84
87
|
"""
|
|
85
|
-
From the MN DOT via the UCI data repository.
|
|
88
|
+
From the MN DOT via the UCI data repository.
|
|
86
89
|
Yes, Minnesota is the best state of the Union.
|
|
87
90
|
"""
|
|
88
91
|
module_path = dirname(__file__)
|
|
89
92
|
data_file_name = join(module_path, 'data', 'traffic_hourly.zip')
|
|
90
93
|
|
|
91
94
|
df_long = pd.read_csv(data_file_name, compression='zip')
|
|
92
|
-
df_long['datetime'] = pd.to_datetime(
|
|
93
|
-
|
|
95
|
+
df_long['datetime'] = pd.to_datetime(
|
|
96
|
+
df_long['datetime'], infer_datetime_format=True
|
|
97
|
+
)
|
|
94
98
|
|
|
95
99
|
return df_long
|
|
96
100
|
|
|
@@ -106,8 +110,9 @@ def load_eia_weekly():
|
|
|
106
110
|
data_file_name = join(module_path, 'data', 'eia_weekly.zip')
|
|
107
111
|
|
|
108
112
|
df_long = pd.read_csv(data_file_name, compression='zip')
|
|
109
|
-
df_long['datetime'] = pd.to_datetime(
|
|
110
|
-
|
|
113
|
+
df_long['datetime'] = pd.to_datetime(
|
|
114
|
+
df_long['datetime'], infer_datetime_format=True
|
|
115
|
+
)
|
|
111
116
|
return df_long
|
|
112
117
|
|
|
113
118
|
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"""
|
|
2
|
+
FRED (Federal Reserve Economic Data) Data Import
|
|
3
|
+
|
|
4
|
+
requires API key from FRED
|
|
5
|
+
and pip install fredapi
|
|
6
|
+
"""
|
|
7
|
+
import pandas as pd
|
|
8
|
+
|
|
9
|
+
try:
|
|
10
|
+
from fredapi import Fred
|
|
11
|
+
except Exception: # except ImportError
|
|
12
|
+
_has_fred = False
|
|
13
|
+
else:
|
|
14
|
+
_has_fred = True
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def get_fred_data(fredkey: str, SeriesNameDict: dict = {'SeriesID': 'SeriesName'}):
|
|
18
|
+
"""
|
|
19
|
+
Imports Data from Federal Reserve
|
|
20
|
+
|
|
21
|
+
args:
|
|
22
|
+
fredkey - an API key from FRED
|
|
23
|
+
|
|
24
|
+
SeriesNameDict, pairs of FRED Series IDs and Series Names
|
|
25
|
+
Series id must match Fred IDs, but name can be anything
|
|
26
|
+
if default is use, several default samples are returned
|
|
27
|
+
"""
|
|
28
|
+
if not _has_fred:
|
|
29
|
+
raise ImportError("Package fredapi is required")
|
|
30
|
+
|
|
31
|
+
fred = Fred(api_key=fredkey)
|
|
32
|
+
|
|
33
|
+
if SeriesNameDict == {'SeriesID': 'SeriesName'}:
|
|
34
|
+
SeriesNameDict = {
|
|
35
|
+
'T10Y2Y': '10 Year Treasury Constant Maturity Minus 2 Year Treasury Constant Maturity',
|
|
36
|
+
'DGS10': '10 Year Treasury Constant Maturity Rate',
|
|
37
|
+
'DCOILWTICO': 'Crude Oil West Texas Intermediate Cushing Oklahoma',
|
|
38
|
+
'SP500': 'S&P 500',
|
|
39
|
+
'DEXUSEU': 'US Euro Foreign Exchange Rate',
|
|
40
|
+
'DEXCHUS': 'China US Foreign Exchange Rate',
|
|
41
|
+
'DEXCAUS': 'Canadian to US Dollar Exchange Rate Daily',
|
|
42
|
+
'VIXCLS': 'CBOE Volatility Index: VIX', # this is a more irregular series
|
|
43
|
+
'T10YIE': '10 Year Breakeven Inflation Rate',
|
|
44
|
+
'USEPUINDXD': 'Economic Policy Uncertainty Index for United States', # also very irregular
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
series_desired = list(SeriesNameDict.keys())
|
|
48
|
+
|
|
49
|
+
fred_timeseries = pd.DataFrame(
|
|
50
|
+
columns=['date', 'value', 'series_id', 'series_name']
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
for series in series_desired:
|
|
54
|
+
data = fred.get_series(series)
|
|
55
|
+
try:
|
|
56
|
+
series_name = SeriesNameDict[series]
|
|
57
|
+
except Exception:
|
|
58
|
+
series_name = series
|
|
59
|
+
data_df = pd.DataFrame(
|
|
60
|
+
{
|
|
61
|
+
'date': data.index,
|
|
62
|
+
'value': data,
|
|
63
|
+
'series_id': series,
|
|
64
|
+
'series_name': series_name,
|
|
65
|
+
}
|
|
66
|
+
)
|
|
67
|
+
data_df.reset_index(drop=True, inplace=True)
|
|
68
|
+
fred_timeseries = pd.concat(
|
|
69
|
+
[fred_timeseries, data_df], axis=0, ignore_index=True
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
return fred_timeseries
|