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.
Files changed (144) hide show
  1. {AutoTS-0.2.2 → AutoTS-0.2.3/AutoTS.egg-info}/PKG-INFO +3 -1
  2. {AutoTS-0.2.2 → AutoTS-0.2.3}/AutoTS.egg-info/SOURCES.txt +1 -0
  3. {AutoTS-0.2.2 → AutoTS-0.2.3}/AutoTS.egg-info/requires.txt +1 -0
  4. {AutoTS-0.2.2/AutoTS.egg-info → AutoTS-0.2.3}/PKG-INFO +3 -1
  5. {AutoTS-0.2.2 → AutoTS-0.2.3}/README.md +2 -0
  6. {AutoTS-0.2.2 → AutoTS-0.2.3}/TODO.md +67 -38
  7. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/__init__.py +11 -3
  8. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/datasets/__init__.py +1 -1
  9. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/datasets/_base.py +20 -15
  10. AutoTS-0.2.3/autots/datasets/fred.py +72 -0
  11. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/evaluator/__init__.py +0 -1
  12. AutoTS-0.2.3/autots/evaluator/auto_model.py +1855 -0
  13. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/evaluator/auto_ts.py +602 -314
  14. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/evaluator/metrics.py +65 -38
  15. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/models/__init__.py +0 -1
  16. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/models/basics.py +502 -291
  17. AutoTS-0.2.3/autots/models/dnn.py +157 -0
  18. AutoTS-0.2.3/autots/models/ensemble.py +708 -0
  19. AutoTS-0.2.3/autots/models/gluonts.py +352 -0
  20. AutoTS-0.2.3/autots/models/prophet.py +270 -0
  21. AutoTS-0.2.3/autots/models/sklearn.py +1501 -0
  22. AutoTS-0.2.3/autots/models/statsmodels.py +1709 -0
  23. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/models/tfp.py +283 -188
  24. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/models/tsfresh.py +187 -104
  25. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/templates/__init__.py +0 -1
  26. AutoTS-0.2.3/autots/templates/general.py +132 -0
  27. AutoTS-0.2.3/autots/tools/__init__.py +3 -0
  28. AutoTS-0.2.3/autots/tools/cpu_count.py +51 -0
  29. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/tools/hierarchial.py +28 -9
  30. AutoTS-0.2.3/autots/tools/holiday.py +55 -0
  31. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/tools/impute.py +6 -4
  32. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/tools/probabilistic.py +64 -42
  33. AutoTS-0.2.3/autots/tools/profile.py +35 -0
  34. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/tools/shaping.py +86 -50
  35. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/tools/transform.py +567 -331
  36. AutoTS-0.2.3/docs/build/doctrees/environment.pickle +0 -0
  37. AutoTS-0.2.3/docs/build/doctrees/source/autots.doctree +0 -0
  38. AutoTS-0.2.3/docs/build/doctrees/source/autots.evaluator.doctree +0 -0
  39. AutoTS-0.2.3/docs/build/doctrees/source/autots.models.doctree +0 -0
  40. AutoTS-0.2.3/docs/build/doctrees/source/autots.tools.doctree +0 -0
  41. AutoTS-0.2.3/docs/build/doctrees/source/intro.doctree +0 -0
  42. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/doctrees/source/tutorial.doctree +0 -0
  43. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/.buildinfo +1 -1
  44. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/autots.tools.rst.txt +8 -0
  45. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/documentation_options.js +1 -1
  46. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/genindex.html +5 -1
  47. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/index.html +1 -1
  48. AutoTS-0.2.3/docs/build/html/objects.inv +0 -0
  49. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/py-modindex.html +6 -1
  50. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/search.html +1 -1
  51. AutoTS-0.2.3/docs/build/html/searchindex.js +1 -0
  52. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/autots.datasets.html +1 -1
  53. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/autots.evaluator.html +15 -12
  54. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/autots.html +4 -2
  55. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/autots.models.html +20 -20
  56. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/autots.templates.html +1 -1
  57. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/autots.tools.html +20 -2
  58. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/intro.html +3 -1
  59. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/modules.html +2 -1
  60. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/source/tutorial.html +27 -16
  61. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/conf.py +1 -1
  62. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/autots.tools.rst +8 -0
  63. {AutoTS-0.2.2 → AutoTS-0.2.3}/extended_tutorial.md +23 -15
  64. {AutoTS-0.2.2 → AutoTS-0.2.3}/setup.py +2 -2
  65. {AutoTS-0.2.2 → AutoTS-0.2.3}/test.py +69 -20
  66. AutoTS-0.2.2/autots/datasets/fred.py +0 -59
  67. AutoTS-0.2.2/autots/evaluator/auto_model.py +0 -1361
  68. AutoTS-0.2.2/autots/models/dnn.py +0 -127
  69. AutoTS-0.2.2/autots/models/ensemble.py +0 -547
  70. AutoTS-0.2.2/autots/models/gluonts.py +0 -286
  71. AutoTS-0.2.2/autots/models/prophet.py +0 -182
  72. AutoTS-0.2.2/autots/models/sklearn.py +0 -1208
  73. AutoTS-0.2.2/autots/models/statsmodels.py +0 -1265
  74. AutoTS-0.2.2/autots/templates/general.py +0 -90
  75. AutoTS-0.2.2/autots/tools/__init__.py +0 -3
  76. AutoTS-0.2.2/autots/tools/holiday.py +0 -44
  77. AutoTS-0.2.2/autots/tools/profile.py +0 -25
  78. AutoTS-0.2.2/docs/build/doctrees/environment.pickle +0 -0
  79. AutoTS-0.2.2/docs/build/doctrees/source/autots.doctree +0 -0
  80. AutoTS-0.2.2/docs/build/doctrees/source/autots.evaluator.doctree +0 -0
  81. AutoTS-0.2.2/docs/build/doctrees/source/autots.models.doctree +0 -0
  82. AutoTS-0.2.2/docs/build/doctrees/source/autots.tools.doctree +0 -0
  83. AutoTS-0.2.2/docs/build/doctrees/source/intro.doctree +0 -0
  84. AutoTS-0.2.2/docs/build/html/objects.inv +0 -0
  85. AutoTS-0.2.2/docs/build/html/searchindex.js +0 -1
  86. {AutoTS-0.2.2 → AutoTS-0.2.3}/.gitignore +0 -0
  87. {AutoTS-0.2.2 → AutoTS-0.2.3}/AutoTS.egg-info/dependency_links.txt +0 -0
  88. {AutoTS-0.2.2 → AutoTS-0.2.3}/AutoTS.egg-info/top_level.txt +0 -0
  89. {AutoTS-0.2.2 → AutoTS-0.2.3}/LICENSE +0 -0
  90. {AutoTS-0.2.2 → AutoTS-0.2.3}/MANIFEST.in +0 -0
  91. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/datasets/data/eia_weekly.zip +0 -0
  92. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/datasets/data/fred_monthly.zip +0 -0
  93. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/datasets/data/fred_yearly.csv +0 -0
  94. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/datasets/data/toy_daily.csv +0 -0
  95. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/datasets/data/traffic_hourly.zip +0 -0
  96. {AutoTS-0.2.2 → AutoTS-0.2.3}/autots/templates/generic_template.csv +0 -0
  97. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/.gitignore +0 -0
  98. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/.nojekyll +0 -0
  99. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/Makefile +0 -0
  100. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/_config.yml +0 -0
  101. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/_static/autots_logo.png +0 -0
  102. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/doctrees/index.doctree +0 -0
  103. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/doctrees/source/autots.datasets.doctree +0 -0
  104. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/doctrees/source/autots.templates.doctree +0 -0
  105. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/doctrees/source/modules.doctree +0 -0
  106. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/.nojekyll +0 -0
  107. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/index.rst.txt +0 -0
  108. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/autots.datasets.rst.txt +0 -0
  109. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/autots.evaluator.rst.txt +0 -0
  110. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/autots.models.rst.txt +0 -0
  111. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/autots.rst.txt +0 -0
  112. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/autots.templates.rst.txt +0 -0
  113. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/intro.rst.txt +0 -0
  114. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/modules.rst.txt +0 -0
  115. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_sources/source/tutorial.rst.txt +0 -0
  116. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/alabaster.css +0 -0
  117. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/autots_logo.png +0 -0
  118. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/basic.css +0 -0
  119. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/custom.css +0 -0
  120. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/doctools.js +0 -0
  121. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/file.png +0 -0
  122. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/jquery-3.4.1.js +0 -0
  123. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/jquery.js +0 -0
  124. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/language_data.js +0 -0
  125. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/minus.png +0 -0
  126. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/plus.png +0 -0
  127. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/pygments.css +0 -0
  128. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/searchtools.js +0 -0
  129. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/underscore-1.3.1.js +0 -0
  130. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/build/html/_static/underscore.js +0 -0
  131. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/index.html +0 -0
  132. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/index.rst +0 -0
  133. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/make.bat +0 -0
  134. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/autots.datasets.rst +0 -0
  135. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/autots.evaluator.rst +0 -0
  136. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/autots.models.rst +0 -0
  137. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/autots.rst +0 -0
  138. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/autots.templates.rst +0 -0
  139. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/intro.rst +0 -0
  140. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/modules.rst +0 -0
  141. {AutoTS-0.2.2 → AutoTS-0.2.3}/docs/source/tutorial.rst +0 -0
  142. {AutoTS-0.2.2 → AutoTS-0.2.3}/img/autots_logo.jpg +0 -0
  143. {AutoTS-0.2.2 → AutoTS-0.2.3}/img/autots_logo.png +0 -0
  144. {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.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
+ [![PyPI download month](https://img.shields.io/pypi/dm/autots.svg)](https://pypi.python.org/pypi/autots/)
11
+ [![PyPI version fury.io](https://badge.fury.io/py/autots.svg)](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
 
@@ -38,6 +38,7 @@ autots/templates/__init__.py
38
38
  autots/templates/general.py
39
39
  autots/templates/generic_template.csv
40
40
  autots/tools/__init__.py
41
+ autots/tools/cpu_count.py
41
42
  autots/tools/hierarchial.py
42
43
  autots/tools/holiday.py
43
44
  autots/tools/impute.py
@@ -12,3 +12,4 @@ gluonts
12
12
  tensorflow
13
13
  xgboost
14
14
  lightgbm
15
+ psutil
@@ -1,12 +1,14 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: AutoTS
3
- Version: 0.2.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
+ [![PyPI download month](https://img.shields.io/pypi/dm/autots.svg)](https://pypi.python.org/pypi/autots/)
11
+ [![PyPI version fury.io](https://badge.fury.io/py/autots.svg)](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
+ [![PyPI download month](https://img.shields.io/pypi/dm/autots.svg)](https://pypi.python.org/pypi/autots/)
3
+ [![PyPI version fury.io](https://badge.fury.io/py/autots.svg)](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 (even if just a `for` loop)
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
- # Latest:
11
- * `grouping`/hierarchial reconciliation to GeneralTransformer
12
- * allow wide-style data as input
13
- * iterative imputer
14
- * allow a list of intervals to prediction_intervals in .predict()
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
- ## General Tasks
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
- * constraint - TO TEMPLATE
40
- * coerce integer - TO HIGHER
41
- * ml model to generalize horizontal ensembles to many series after only trained on subset
42
- * all be 'horizontal-max' and then have subset make smaller if desired
43
- * have subsetting sample for diversity, not just random in this case
44
- * handle failure of one of the models to predict
45
- * horizontal ensemble using prior selection of only one per class, and maybe also for speed
46
- * cleanse similar models out first
47
- TemplateWizard catches errors right now
48
- Need to handle errors for ensemble lower level's but not for standalone modelsd
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.2'
16
+ __version__ = '0.2.3'
17
17
 
18
18
 
19
- __all__ = ['load_daily','load_monthly', 'load_yearly', 'load_hourly', 'load_weekly',
20
- 'AutoTS', 'GeneralTransformer', 'long_to_wide']
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(df_long['datetime'],
13
- infer_datetime_format=True)
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(df_long['datetime'],
39
- infer_datetime_format=True)
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(df_long['datetime'],
73
- infer_datetime_format=True)
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(df_long['datetime'],
93
- infer_datetime_format=True)
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(df_long['datetime'],
110
- infer_datetime_format=True)
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
@@ -1,4 +1,3 @@
1
1
  """
2
2
  Model Evaluators
3
3
  """
4
-