Automated Time Series Forecasting

Overview

AutoTS

AutoTS is a time series package for Python designed for rapidly deploying high-accuracy forecasts at scale.

There are dozens of forecasting models usable in the sklearn style of .fit() and .predict(). These includes naive, statistical, machine learning, and deep learning models. Additionally, there are over 30 time series specific transforms usable in the sklearn style of .fit(), .transform() and .inverse_transform(). All of these function directly on Pandas Dataframes, without the need for conversion to proprietary objects.

All models support forecasting multivariate (multiple time series) outputs and also support probabilistic (upper/lower bound) forecasts. Most models can readily scale to tens and even hundreds of thousands of input series. Many models also support passing in user-defined exogenous regressors.

These models are all designed for integration in an AutoML feature search which automatically finds the best models, preprocessing, and ensembling for a given dataset through genetic algorithms.

Horizontal and mosaic style ensembles are the flagship ensembling types, allowing each series to receive the most accurate possible models while still maintaining scalability.

A combination of metrics and cross-validation options, the ability to apply subsets and weighting, regressor generation tools, simulation forecastind mode, live datasets, template import and export, plotting, and a collection of data shaping parameters round out the available feature set.

Table of Contents

Installation

pip install autots

This includes dependencies for basic models, but additonal packages are required for some models and methods.

Basic Use

Input data for AutoTS is expected to come in either a long or a wide format:

  • The wide format is a pandas.DataFrame with a pandas.DatetimeIndex and each column a distinct series.
  • The long format has three columns:
    • Date (ideally already in pd.DateTime format)
    • Series ID. For a single time series, series_id can be = None.
    • Value
  • For long data, the column name for each of these is passed to .fit() as date_col, id_col, and value_col. No parameters are needed for wide data.

Lower-level functions are only designed for wide style data.

# also load: _hourly, _monthly, _weekly, _yearly, or _live_daily
from autots import AutoTS, load_daily

# sample datasets can be used in either of the long or wide import shapes
long = False
df = load_daily(long=long)

model = AutoTS(
    forecast_length=21,
    frequency='infer',
    prediction_interval=0.9,
    ensemble=None,
    model_list="fast",  # "superfast", "default", "fast_parallel"
    transformer_list="fast",  # "superfast",
    drop_most_recent=1,
    max_generations=4,
    num_validations=2,
    validation_method="backwards"
)
model = model.fit(
    df,
    date_col='datetime' if long else None,
    value_col='value' if long else None,
    id_col='series_id' if long else None,
)

prediction = model.predict()
# plot a sample
prediction.plot(model.df_wide_numeric,
                series=model.df_wide_numeric.columns[0],
                start_date="2019-01-01")
# Print the details of the best model
print(model)

# point forecasts dataframe
forecasts_df = prediction.forecast
# upper and lower forecasts
forecasts_up, forecasts_low = prediction.upper_forecast, prediction.lower_forecast

# accuracy of all tried model results
model_results = model.results()
# and aggregated from cross validation
validation_results = model.results("validation")

The lower-level API, in particular the large section of time series transformers in the scikit-learn style, can also be utilized independently from the AutoML framework.

Check out extended_tutorial.md for a more detailed guide to features!

Also take a look at the production_example.py

Tips for Speed and Large Data:

  • Use appropriate model lists, especially the predefined lists:
    • superfast (simple naive models) and fast (more complex but still faster models, optimized for many series)
    • fast_parallel (a combination of fast and parallel) or parallel, given many CPU cores are available
      • n_jobs usually gets pretty close with ='auto' but adjust as necessary for the environment
    • see a dict of predefined lists (some defined for internal use) with from autots.models.model_list import model_lists
  • Use the subset parameter when there are many similar series, subset=100 will often generalize well for tens of thousands of similar series.
    • if using subset, passing weights for series will weight subset selection towards higher priority series.
    • if limited by RAM, it can be distributed by running multiple instances of AutoTS on different batches of data, having first imported a template pretrained as a starting point for all.
  • Set model_interrupt=True which passes over the current model when a KeyboardInterrupt ie crtl+c is pressed (although if the interrupt falls between generations it will stop the entire training).
  • Use the result_file method of .fit() which will save progress after each generation - helpful to save progress if a long training is being done. Use import_results to recover.
  • While Transformations are pretty fast, setting transformer_max_depth to a lower number (say, 2) will increase speed. Also utilize transformer_list == 'fast' or 'superfast'.
  • Check out this example of using AutoTS with pandas UDF.
  • Ensembles are obviously slower to predict because they run many models, 'distance' models 2x slower, and 'simple' models 3x-5x slower.
    • ensemble='horizontal-max' with model_list='no_shared_fast' can scale relatively well given many cpu cores because each model is only run on the series it is needed for.
  • Reducing num_validations and models_to_validate will decrease runtime but may lead to poorer model selections.
  • For datasets with many records, upsampling (for example, from daily to monthly frequency forecasts) can reduce training time if appropriate.
    • this can be done by adjusting frequency and aggfunc but is probably best done before passing data into AutoTS.

How to Contribute:

  • Give feedback on where you find the documentation confusing
  • Use AutoTS and...
    • Report errors and request features by adding Issues on GitHub
    • Posting the top model templates for your data (to help improve the starting templates)
    • Feel free to recommend different search grid parameters for your favorite models
  • And, of course, contributing to the codebase directly on GitHub!

Also known as Project CATS (Catlin's Automated Time Series) hence the logo.

Comments
  •  Exception: Transformer Detrend failed on fit

    Exception: Transformer Detrend failed on fit

    Hello.
    Could you tell me what the message would indicate?

    3610 # df = df.replace([np.inf, -np.inf], 0) # .fillna(0) 3611 except Exception as e: -> 3612 raise Exception( 3613 f"Transformer {self.transformations[i]} failed on fit" 3614 ) from e 3615 # df = df.replace([np.inf, -np.inf], 0) # .fillna(0) 3616 return df

    Exception: Transformer Detrend failed on fit

    opened by r-matsuzaka 12
  • Their is No Detail about train Data and Test data and no information about [ forecast_length ] in documentation??

    Their is No Detail about train Data and Test data and no information about [ forecast_length ] in documentation??

    Hi Dear. hope you all doing good i want to ask some question about some basic things like how give train data ? how we can give test data ? how we can give target colum ? As i read doc but i never i understand forecast_length what this use for? last question is that as i read in doc catgegorical data must label encode before to feed and is it must to use all int dtype or we can use float dtype columns as well please helpme to answere i would realy appreciate your help. Thanks

    opened by faridelya 9
  • Why is the best result returned by the model not the best according to the resulting dataframe?

    Why is the best result returned by the model not the best according to the resulting dataframe?

    Hi,

    long = True
    # df = load_monthly(long=long)
    
    from autots import AutoTS
    
    metric_weighting = {
        "smape_weighting": 5,
        "mae_weighting": 1,
        "rmse_weighting": 0,
        "containment_weighting": 0,
        "runtime_weighting": 0,
        "spl_weighting": 0,
        "contour_weighting": 0,
    }
    
    model = AutoTS(
        forecast_length=30,
        frequency="infer",
        prediction_interval=0.9,
        ensemble=None,
        model_list="superfast",
        transformer_list="fast",
        max_generations=15,
        num_validations=5,
        validation_method="backwards",
        metric_weighting=metric_weighting,
    )
    model = model.fit(
        df,
        date_col="ds" if long else None,
        value_col="y" if long else None,
        id_col="series" if long else None,
    )
    
    prediction = model.predict()
    
    forecasts_df = prediction.forecast
    # upper and lower forecasts
    forecasts_up, forecasts_low = prediction.upper_forecast, prediction.lower_forecast
    
    # accuracy of all tried model results
    model_results = model.results()
    validation_results = model.results("validation")
    

    After the run, I get the following Initiated AutoTS object with best model: AverageValueNaive, but then if I sort the validation_results dataframe by Score or smape, the first place is taken by another model, not this one.

    Probably, I don't completely understand the way the best model is reported. Thank you in advance!

    opened by wilfreddesert 9
  • SinTrend failed with IndexError('index 1 is out of bounds for axis 0 with size 0')

    SinTrend failed with IndexError('index 1 is out of bounds for axis 0 with size 0')

    Hello,

    for some reason I get an error that I did not get before. I am using the same code and same data that worked before, but I still get the error.

    Anyone else experiencing this issue?

    Error: SinTrend failed with IndexError('index 1 is out of bounds for axis 0 with size 0')

    Kind regards Luke

    opened by LukeBeckerBB 8
  • self.best_model_name = self.best_model['Model'].iloc[0]

    self.best_model_name = self.best_model['Model'].iloc[0]

    Hi, I am facing difficulty running the model. I have selected some models in a list - best_model. There are 3 of them, and technically model.fit should run all those 3, and give result based on the best one. Sometimes it works, sometimes it throws error with this iloc[0] position statement. It seems it is not able to read the list because I already have 3 algo names there, then how is it not able to read 0th element. Initially i was passing just 1 name, i got same error, then i added 2, now there are 3 algo names, still the same error popping up randomly. What is the root cause of this issue and how can i fix it? Kindly guide.

    opened by meetu30 7
  • Handle Preprocessing for Descending Time Series Data

    Handle Preprocessing for Descending Time Series Data

    Detected Unintuitive Behaviour

    I ran into a weird error when passing in a dataframe with a descending date index.

    ValueError: attempt to get argmax of an empty sequence

    Root Cause

    autots.tools.shaping.df_cleanup is returning an empty dataframe because the inferred frequency of -1H results in unexpected behaviour when filling missing dates.

    Example: Screenshot 2022-09-27 at 19 25 35

    Proposed Change

    Let's make sure to sort the time series in ascending order at the beginning of the cleanup for additional robustness and avoid the mystery error message. This also guarantees compatibility with Prophet, which can handle unordered time series data.

    opened by adai183 5
  • Allow use to specify target and features

    Allow use to specify target and features

    I cannot understand how autoLS will understand which is my target. For example, passing a wide dataframe how can I understand that that y is my target and x my features for predicting the target?

    opened by ghost 5
  • zero forecast generated using statsmodel

    zero forecast generated using statsmodel

    Looks like all the statsmodels model where warnings.simplefilter("ignore", category='ConvergenceWarning') is used are failing and generating zero forecasts

    opened by yvadalia 4
  • Cant' get high VARMAX orders from AutoTS

    Cant' get high VARMAX orders from AutoTS

    No matter the value that I set in max_generations arg, the orders of VARMAX that I get are always between 0 and 2. Is there is any way to make AutoTS tries higher orders for VARIMAX models ? I tried various parameters with AutoTS, here is an example of how I create a model and fit it.

    model = AutoTS(
        forecast_length=9,
        frequency='M',
        prediction_interval=0.9,
        model_list=["VARMAX"],
        ensemble="all",
        max_generations=100,
        num_validations=2,
        validation_method="backwards",
        random_seed=7,
        models_to_validate = 0.2,
        transformer_list="all",
        transformer_max_depth=8
    )
    # VARMA_train_data is a wide data set of 6 columns and 54 monthly observasions
    model.fit(VARMA_train_data)
    
    opened by Abdelgha-4 4
  • Question: Optimal max_generations

    Question: Optimal max_generations

    I wonder how to set the generation number.
    Is there any optimal number?

    Also, each generation tries only one model randomly?
    Then I should choose more than the number of models available like 40?

    opened by r-matsuzaka 2
  • When would be available early stopping option?

    When would be available early stopping option?

    Hello, again. I found the comment, It's called 'max' because someday there will be an auto early stopping option, but for now this is just the exact number of generations to run. at https://github.com/winedarksea/AutoTS/blob/52487e5ea5e3ce0530e1096e239655786227de3f/autots/evaluator/auto_ts.py#L54

    Do you plan to implement this feature?

    opened by r-matsuzaka 2
  • Question: Multi-Objective Forecasting

    Question: Multi-Objective Forecasting

    Problem: A dataset with multiple data columns that may or may not be temporally coupled, and also multiple output sets. e.g. market sectors and wellbeing index as columns, see if one index is tied to the rest of the indices.

    opened by BrandonKMLee 7
  • Evaluation Metrics are missing and all models have failed, by an error in template or metrics

    Evaluation Metrics are missing and all models have failed, by an error in template or metrics

    Describe the bug I tried to use DNN models presented in the package such as GluonTS, pytorch-forecasting and tensorflowSTS. I have installed all required packages as in the installation guide (My environment can be viewed below). The error I got from the fit() function read as:

    "Evaluation Metrics are missing and all models have failed, by an error in template or metrics. There are many possible causes for this, bad parameters, environment, or an unreported bug. Usually this means you are missing required packages for the models like fbprophet or gluonts, or that the models in model_list are inappropriate for your data. A new starting template may also help".

    To Reproduce When I run the following code:

    from autots import AutoTS
    model_list = ['TensorflowSTS']
    model = AutoTS(
        forecast_length=7,
        frequency='D',
        prediction_interval=0.9,
        metric_weighting=metric_weighting,
        ensemble='horizontal',
        holiday_country='UK',
        model_list=model_list,  
        drop_most_recent=0,
        max_generations=1,
        num_validations=3,
        validation_method="backwards",
        no_negatives=True,
        verbose=-2,
        n_jobs = 72
    )
    
    model = model.fit(train_df)
    

    Expected behavior Stack trace:

    ---------------------------------------------------------------------------
    KeyError                                  Traceback (most recent call last)
    File ~/anaconda3/envs/forecast/lib/python3.10/site-packages/pandas/core/indexes/base.py:3621, in Index.get_loc(self, key, method, tolerance)
       3620 try:
    -> 3621     return self._engine.get_loc(casted_key)
       3622 except KeyError as err:
    
    File ~/anaconda3/envs/forecast/lib/python3.10/site-packages/pandas/_libs/index.pyx:136, in pandas._libs.index.IndexEngine.get_loc()
    
    File ~/anaconda3/envs/forecast/lib/python3.10/site-packages/pandas/_libs/index.pyx:163, in pandas._libs.index.IndexEngine.get_loc()
    
    File pandas/_libs/hashtable_class_helper.pxi:5198, in pandas._libs.hashtable.PyObjectHashTable.get_item()
    
    File pandas/_libs/hashtable_class_helper.pxi:5206, in pandas._libs.hashtable.PyObjectHashTable.get_item()
    
    KeyError: 'smape'
    
    The above exception was the direct cause of the following exception:
    
    KeyError                                  Traceback (most recent call last)
    File ~/anaconda3/envs/forecast/lib/python3.10/site-packages/autots/evaluator/auto_model.py:2031, in generate_score(model_results, metric_weighting, prediction_interval)
       2030 # not sure why there are negative SMAPE values, but make sure they get dealt with
    -> 2031 if model_results['smape'].min() < 0:
       2032     model_results['smape'] = model_results['smape'].where(
       2033         model_results['smape'] >= 0, model_results['smape'].max()
       2034     )
    
    File ~/anaconda3/envs/forecast/lib/python3.10/site-packages/pandas/core/frame.py:3505, in DataFrame.__getitem__(self, key)
       3504     return self._getitem_multilevel(key)
    -> 3505 indexer = self.columns.get_loc(key)
       3506 if is_integer(indexer):
    
    File ~/anaconda3/envs/forecast/lib/python3.10/site-packages/pandas/core/indexes/base.py:3623, in Index.get_loc(self, key, method, tolerance)
       3622 except KeyError as err:
    -> 3623     raise KeyError(key) from err
       3624 except TypeError:
       3625     # If we have a listlike key, _check_indexing_error will raise
       3626     #  InvalidIndexError. Otherwise we fall through and re-raise
       3627     #  the TypeError.
    
    KeyError: 'smape'
    
    During handling of the above exception, another exception occurred:
    
    KeyError                                  Traceback (most recent call last)
    File <timed exec>:44, in <module>
    
    File ~/anaconda3/envs/forecast/lib/python3.10/site-packages/autots/evaluator/auto_ts.py:791, in AutoTS.fit(self, df, date_col, value_col, id_col, future_regressor, weights, result_file, grouping_ids, validation_indexes)
        789 # capture the data from the lower level results
        790 self.initial_results = self.initial_results.concat(template_result)
    --> 791 self.initial_results.model_results['Score'] = generate_score(
        792     self.initial_results.model_results,
        793     metric_weighting=metric_weighting,
        794     prediction_interval=prediction_interval,
        795 )
        796 if result_file is not None:
        797     self.initial_results.save(result_file)
    
    File ~/anaconda3/envs/forecast/lib/python3.10/site-packages/autots/evaluator/auto_model.py:2126, in generate_score(model_results, metric_weighting, prediction_interval)
       2123         overall_score = overall_score + (containment_score * containment_weighting)
       2125 except Exception as e:
    -> 2126     raise KeyError(
       2127         f"""Evaluation Metrics are missing and all models have failed, by an error in template or metrics.
       2128         There are many possible causes for this, bad parameters, environment, or an unreported bug.
       2129         Usually this means you are missing required packages for the models like fbprophet or gluonts,
       2130         or that the models in model_list are inappropriate for your data.
       2131         A new starting template may also help. {repr(e)}"""
       2132     )
       2134 return overall_score.astype(float)
    
    

    Desktop (please complete the following information):

    • OS: Ubuntu 20.04
    • Package Versions 0.4.2

    ``

    Name Version Build Channel

    _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 2_gnu conda-forge abseil-cpp 20210324.2 h9c3ff4c_0 conda-forge absl-py 1.1.0 pyhd8ed1ab_0 conda-forge aiohttp 3.8.1 py310h5764c6d_1 conda-forge aiosignal 1.2.0 pyhd8ed1ab_0 conda-forge alembic 1.8.0 pyhd8ed1ab_0 conda-forge appdirs 1.4.4 pypi_0 pypi arch 5.3.1 pypi_0 pypi argon2-cffi 21.3.0 pypi_0 pypi argon2-cffi-bindings 21.2.0 pypi_0 pypi asttokens 2.0.5 pypi_0 pypi astunparse 1.6.3 pyhd8ed1ab_0 conda-forge async-timeout 4.0.2 pyhd8ed1ab_0 conda-forge attrs 21.4.0 pyhd8ed1ab_0 conda-forge autopage 0.5.1 pyhd8ed1ab_0 conda-forge autots 0.4.2 pyhd8ed1ab_0 conda-forge backcall 0.2.0 pypi_0 pypi backports 1.0 py_2 conda-forge backports.functools_lru_cache 1.6.4 pyhd8ed1ab_0 conda-forge beautifulsoup4 4.11.1 pypi_0 pypi blas 1.0 mkl conda-forge bleach 5.0.0 pypi_0 pypi blinker 1.4 py_1 conda-forge brotli 1.0.9 h166bdaf_7 conda-forge brotli-bin 1.0.9 h166bdaf_7 conda-forge brotlipy 0.7.0 py310h5764c6d_1004 conda-forge bzip2 1.0.8 h7f98852_4 conda-forge c-ares 1.18.1 h7f98852_0 conda-forge ca-certificates 2022.6.15 ha878542_0 conda-forge cached-property 1.5.2 hd8ed1ab_1 conda-forge cached_property 1.5.2 pyha770c72_1 conda-forge cachetools 5.0.0 pyhd8ed1ab_0 conda-forge certifi 2022.6.15 py310hff52083_0 conda-forge cffi 1.15.0 py310h0fdd8cc_0 conda-forge charset-normalizer 2.0.12 pyhd8ed1ab_0 conda-forge click 8.1.3 py310hff52083_0 conda-forge cliff 3.10.1 pyhd8ed1ab_0 conda-forge clikit 0.6.2 pypi_0 pypi cloudpickle 2.1.0 pyhd8ed1ab_0 conda-forge cmaes 0.8.2 pyh44b312d_0 conda-forge cmd2 2.3.3 py310hff52083_1 conda-forge cmdstanpy 0.9.5 pypi_0 pypi colorama 0.4.5 pyhd8ed1ab_0 conda-forge colorlog 6.6.0 py310hff52083_1 conda-forge convertdate 2.4.0 pypi_0 pypi crashtest 0.3.1 pypi_0 pypi cryptography 37.0.1 py310h9ce1e76_0
    cudatoolkit 11.3.1 h9edb442_10 conda-forge cycler 0.11.0 pyhd8ed1ab_0 conda-forge cython 0.29.30 pypi_0 pypi dask 2022.6.1 pypi_0 pypi debugpy 1.6.0 pypi_0 pypi decorator 5.1.1 pypi_0 pypi defusedxml 0.7.1 pypi_0 pypi dill 0.3.5.1 pypi_0 pypi distributed 2022.6.1 pypi_0 pypi entrypoints 0.4 pypi_0 pypi ephem 4.1.3 pypi_0 pypi executing 0.8.3 pypi_0 pypi fastjsonschema 2.15.3 pypi_0 pypi fonttools 4.33.3 pypi_0 pypi freetype 2.10.4 h0708190_1 conda-forge frozenlist 1.3.0 py310h5764c6d_1 conda-forge fsspec 2022.5.0 pyhd8ed1ab_0 conda-forge future 0.18.2 py310hff52083_5 conda-forge gast 0.5.3 pyhd8ed1ab_0 conda-forge giflib 5.2.1 h36c2ea0_2 conda-forge gluonts 0.10.1 pypi_0 pypi google-auth 2.9.0 pyh6c4a22f_0 conda-forge google-auth-oauthlib 0.4.1 py_2 conda-forge google-pasta 0.2.0 pyh8c360ce_0 conda-forge greenlet 1.1.2 py310hd8f1fbe_2 conda-forge greykite 0.3.0 pypi_0 pypi grpc-cpp 1.45.2 h3b8df00_4 conda-forge grpcio 1.45.0 py310h44b9e0c_0 conda-forge h5py 3.7.0 nompi_py310h06dffec_100 conda-forge hdf5 1.12.1 nompi_h2386368_104 conda-forge heapdict 1.0.1 pypi_0 pypi hijri-converter 2.2.4 pypi_0 pypi holidays 0.14.2 pypi_0 pypi holidays-ext 0.0.7 pypi_0 pypi httpstan 4.7.2 pypi_0 pypi icu 70.1 h27087fc_0 conda-forge idna 3.3 pyhd8ed1ab_0 conda-forge importlib-metadata 4.11.4 py310hff52083_0 conda-forge importlib_resources 5.8.0 pyhd8ed1ab_0 conda-forge intel-openmp 2022.0.1 h06a4308_3633
    ipykernel 6.15.0 pypi_0 pypi ipython 8.4.0 pypi_0 pypi ipython-genutils 0.2.0 pypi_0 pypi jedi 0.18.1 pypi_0 pypi jinja2 3.1.2 pypi_0 pypi joblib 1.1.0 pyhd8ed1ab_0 conda-forge jpeg 9e h166bdaf_2 conda-forge jsonschema 4.6.0 pypi_0 pypi jupyter-client 7.3.4 pypi_0 pypi jupyter-console 6.4.4 pypi_0 pypi jupyter-core 4.10.0 pypi_0 pypi jupyter-http-over-ws 0.0.8 pypi_0 pypi jupyterlab-pygments 0.2.2 pypi_0 pypi jupyterlab-widgets 1.1.1 pypi_0 pypi keras 2.8.0 pyhd8ed1ab_0 conda-forge keras-preprocessing 1.1.2 pyhd8ed1ab_0 conda-forge keyutils 1.6.1 h166bdaf_0 conda-forge kiwisolver 1.4.3 py310hbf28c38_0 conda-forge korean-lunar-calendar 0.2.1 pypi_0 pypi krb5 1.19.3 h3790be6_0 conda-forge lcms2 2.12 hddcbb42_0 conda-forge ld_impl_linux-64 2.36.1 hea4e1c9_2 conda-forge lerc 3.0 h9c3ff4c_0 conda-forge libblas 3.9.0 14_linux64_mkl conda-forge libbrotlicommon 1.0.9 h166bdaf_7 conda-forge libbrotlidec 1.0.9 h166bdaf_7 conda-forge libbrotlienc 1.0.9 h166bdaf_7 conda-forge libcblas 3.9.0 14_linux64_mkl conda-forge libcurl 7.83.1 h7bff187_0 conda-forge libdeflate 1.12 h166bdaf_0 conda-forge libedit 3.1.20191231 he28a2e2_2 conda-forge libev 4.33 h516909a_1 conda-forge libffi 3.4.2 h7f98852_5 conda-forge libgcc-ng 12.1.0 h8d9b700_16 conda-forge libgfortran-ng 12.1.0 h69a702a_16 conda-forge libgfortran5 12.1.0 hdcd56e2_16 conda-forge libgomp 12.1.0 h8d9b700_16 conda-forge liblapack 3.9.0 14_linux64_mkl conda-forge libnghttp2 1.47.0 h727a467_0 conda-forge libnsl 2.0.0 h7f98852_0 conda-forge libopenblas 0.3.20 pthreads_h78a6416_0 conda-forge libpng 1.6.37 h753d276_3 conda-forge libprotobuf 3.20.1 h6239696_0 conda-forge libssh2 1.10.0 ha56f1ee_2 conda-forge libstdcxx-ng 12.1.0 ha89aaad_16 conda-forge libtiff 4.4.0 hc85c160_1 conda-forge libuuid 2.32.1 h7f98852_1000 conda-forge libwebp 1.2.2 h3452ae3_0 conda-forge libwebp-base 1.2.2 h7f98852_1 conda-forge libxcb 1.13 h7f98852_1004 conda-forge libzlib 1.2.12 h166bdaf_1 conda-forge lightgbm 3.3.2 py310h122e73d_0 conda-forge locket 1.0.0 pypi_0 pypi lunarcalendar 0.0.9 pypi_0 pypi lz4-c 1.9.3 h9c3ff4c_1 conda-forge mako 1.2.1 pyhd8ed1ab_0 conda-forge markdown 3.3.7 pyhd8ed1ab_0 conda-forge markupsafe 2.1.1 py310h5764c6d_1 conda-forge marshmallow 3.16.0 pypi_0 pypi matplotlib-base 3.5.2 py310h5701ce4_0 conda-forge matplotlib-inline 0.1.3 pypi_0 pypi mistune 0.8.4 pypi_0 pypi mkl 2022.0.1 h06a4308_117
    msgpack 1.0.4 pypi_0 pypi multidict 6.0.2 py310h5764c6d_1 conda-forge munkres 1.1.4 pyh9f0ad1d_0 conda-forge mxnet-cu112 1.9.1 pypi_0 pypi nbclient 0.6.4 pypi_0 pypi nbconvert 6.5.0 pypi_0 pypi nbformat 5.4.0 pypi_0 pypi ncurses 6.3 h27087fc_1 conda-forge nest-asyncio 1.5.5 pypi_0 pypi notebook 6.4.12 pypi_0 pypi numpy 1.23.0 py310h53a5b5f_0 conda-forge oauthlib 3.2.0 pyhd8ed1ab_0 conda-forge openjpeg 2.4.0 hb52868f_1 conda-forge openssl 1.1.1q h166bdaf_0 conda-forge opt_einsum 3.3.0 pyhd8ed1ab_1 conda-forge optuna 2.10.1 pyhd8ed1ab_0 conda-forge packaging 21.3 pyhd8ed1ab_0 conda-forge pandas 1.4.3 py310h769672d_0 conda-forge pandocfilters 1.5.0 pypi_0 pypi parso 0.8.3 pypi_0 pypi partd 1.2.0 pypi_0 pypi pastel 0.2.1 pypi_0 pypi patsy 0.5.2 pyhd8ed1ab_0 conda-forge pbr 5.9.0 pyhd8ed1ab_0 conda-forge pexpect 4.8.0 pypi_0 pypi pickleshare 0.7.5 pypi_0 pypi pillow 9.1.1 pypi_0 pypi pip 22.1.2 pyhd8ed1ab_0 conda-forge pmdarima 1.8.5 pypi_0 pypi prettytable 3.3.0 pypi_0 pypi prometheus-client 0.14.1 pypi_0 pypi prompt-toolkit 3.0.29 pypi_0 pypi property-cached 1.6.4 pypi_0 pypi prophet 1.1 pypi_0 pypi protobuf 3.20.1 py310hd8f1fbe_0 conda-forge psutil 5.9.1 pypi_0 pypi pthread-stubs 0.4 h36c2ea0_1001 conda-forge ptyprocess 0.7.0 pypi_0 pypi pure-eval 0.2.2 pypi_0 pypi pyasn1 0.4.8 py_0 conda-forge pyasn1-modules 0.2.7 py_0 conda-forge pycparser 2.21 pyhd8ed1ab_0 conda-forge pydantic 1.9.1 pypi_0 pypi pydeprecate 0.3.2 pyhd8ed1ab_0 conda-forge pygments 2.12.0 pypi_0 pypi pyjwt 2.4.0 pyhd8ed1ab_0 conda-forge pylev 1.4.0 pypi_0 pypi pymeeus 0.5.11 pypi_0 pypi pyopenssl 22.0.0 pyhd8ed1ab_0 conda-forge pyparsing 3.0.9 pyhd8ed1ab_0 conda-forge pyperclip 1.8.2 pyhd8ed1ab_2 conda-forge pyrsistent 0.18.1 pypi_0 pypi pysimdjson 3.2.0 pypi_0 pypi pysocks 1.7.1 py310hff52083_5 conda-forge pystan 3.4.0 pypi_0 pypi python 3.10.5 h582c2e5_0_cpython conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python-flatbuffers 2.0 pyhd8ed1ab_0 conda-forge python_abi 3.10 2_cp310 conda-forge pytorch 1.12.0 py3.10_cuda11.3_cudnn8.3.2_0 pytorch pytorch-forecasting 0.10.2 pyhd8ed1ab_0 conda-forge pytorch-lightning 1.6.4 pyhd8ed1ab_0 conda-forge pytorch-mutex 1.0 cuda pytorch pytz 2022.1 pyhd8ed1ab_0 conda-forge pyu2f 0.1.5 pyhd8ed1ab_0 conda-forge pyyaml 5.4.1 pypi_0 pypi pyzmq 23.2.0 pypi_0 pypi qtconsole 5.3.1 pypi_0 pypi qtpy 2.1.0 pypi_0 pypi re2 2022.06.01 h27087fc_0 conda-forge readline 8.1.2 h0f457ee_0 conda-forge requests 2.28.0 pyhd8ed1ab_0 conda-forge requests-oauthlib 1.3.1 pyhd8ed1ab_0 conda-forge rsa 4.8 pyhd8ed1ab_0 conda-forge scikit-learn 1.1.1 py310hffb9edd_0 conda-forge scipy 1.8.1 py310h7612f91_0 conda-forge seaborn 0.11.2 pypi_0 pypi send2trash 1.8.0 pypi_0 pypi setuptools 59.5.0 py310hff52083_0 conda-forge setuptools-git 1.2 pypi_0 pypi six 1.16.0 pyh6c4a22f_0 conda-forge snappy 1.1.9 hbd366e4_1 conda-forge sortedcontainers 2.4.0 pypi_0 pypi soupsieve 2.3.2.post1 pypi_0 pypi sqlalchemy 1.4.39 py310h5764c6d_0 conda-forge sqlite 3.38.5 h4ff8645_0 conda-forge stack-data 0.3.0 pypi_0 pypi statsmodels 0.13.2 py310hde88566_0 conda-forge stevedore 3.5.0 py310hff52083_3 conda-forge tblib 1.7.0 pypi_0 pypi tensorboard 2.8.0 pyhd8ed1ab_1 conda-forge tensorboard-data-server 0.6.0 py310h597c629_2 conda-forge tensorboard-plugin-wit 1.8.1 pyhd8ed1ab_0 conda-forge tensorflow 2.8.1 cpu_py310hd1aba9c_0 conda-forge tensorflow-base 2.8.1 cpu_py310h17449b8_0 conda-forge tensorflow-estimator 2.8.1 cpu_py310had6d012_0 conda-forge termcolor 1.1.0 pyhd8ed1ab_3 conda-forge terminado 0.15.0 pypi_0 pypi threadpoolctl 3.1.0 pyh8a188c0_0 conda-forge tinycss2 1.1.1 pypi_0 pypi tk 8.6.12 h27826a3_0 conda-forge toolz 0.11.2 pypi_0 pypi torchmetrics 0.9.2 pyhd8ed1ab_0 conda-forge tornado 6.1 pypi_0 pypi tqdm 4.64.0 pyhd8ed1ab_0 conda-forge traitlets 5.3.0 pypi_0 pypi typing-extensions 4.3.0 hd8ed1ab_0 conda-forge typing_extensions 4.3.0 pyha770c72_0 conda-forge tzdata 2022a h191b570_0 conda-forge ujson 5.3.0 pypi_0 pypi unicodedata2 14.0.0 py310h5764c6d_1 conda-forge urllib3 1.26.9 pyhd8ed1ab_0 conda-forge wcwidth 0.2.5 pyh9f0ad1d_2 conda-forge webargs 8.1.0 pypi_0 pypi webencodings 0.5.1 pypi_0 pypi werkzeug 2.1.2 pyhd8ed1ab_1 conda-forge wheel 0.37.1 pyhd8ed1ab_0 conda-forge widgetsnbextension 3.6.1 pypi_0 pypi wrapt 1.14.1 py310h5764c6d_0 conda-forge xgboost 1.6.1 pypi_0 pypi xlrd 2.0.1 pypi_0 pypi xorg-libxau 1.0.9 h7f98852_0 conda-forge xorg-libxdmcp 1.1.3 h7f98852_0 conda-forge xz 5.2.5 h516909a_1 conda-forge yaml 0.2.5 h7f98852_2 conda-forge yarl 1.7.2 py310h5764c6d_2 conda-forge zict 2.2.0 pypi_0 pypi zipp 3.8.0 pyhd8ed1ab_0 conda-forge zlib 1.2.12 h166bdaf_1 conda-forge zstd 1.5.2 h8a70e8d_2 conda-forge ``

    opened by JohanObluda 1
Releases(0.5.3)
  • 0.5.3(Dec 23, 2022)

  • 0.5.2(Dec 13, 2022)

  • 0.5.1(Nov 15, 2022)

    0.5.1 :mage_man: :mage_man: :mage_man:

    • add LocalLinearTrend transformer
    • improved ScipyFilter focusing on Butter and Savitzky–Golay filters
    • update to AutoTS().back_forecast including breaking change of column arg renamed to series
    • add KalmanSmoothing transformer
    • add KalmanStateSpace model (Kalman Filter + 'any' state space models)
    • AlignLastValue no longer applied to upper/lower forecast bounds
    • modified regression impact in HolidayTransformer to weighted least squares, moved existing to 'datepart_regression'
    • added Cassandra model
    • bug fix for Categorical dateparts with 1 starts
    • updated load_daily to Wikimedia page views
    • added dwae metric
    • added MetricMotif model
    • added 'common_fourier' datepart method
    • added SeasonalMotif model
    • added 'seasonal' validation
    • bug fix for cffilter with univariate input
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.5.1-py3-none-any.whl(656.59 KB)
    AutoTS-0.5.1.tar.gz(1.66 MB)
  • 0.5.0(Aug 24, 2022)

    0.5.0 :space_invader: :space_invader: :space_invader:

    • added AnomalyDetector
    • added HolidayDetector
    • added observation_end and Wikipedia data to load_live_daily
    • added binarized versions of datepart method (should have done ages ago!)
    • addded RRVAR, MAR, TMF, LATC models
    • added AlignLastValue transformer
    • added plot_horizontal_model_count and fixed an error in horizontal generation plot
    • adjusted TotalRuntime to higher precision, and no longer + 1
    • added subsidiary transformer for cleaning in Detrend and Datepart detrend Transformers
    • sped up SinTrend transformer
    • new AnomalyRemoval transformer
    • added HolidayTransformer
    • added auto holidays to Prophet
    • added get_new_params method to AutoTS class
    • more holidays options to create_regressor
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.5.0-py3-none-any.whl(517.32 KB)
    AutoTS-0.5.0.tar.gz(1.47 MB)
  • 0.4.2(Jun 20, 2022)

    Latest :space_invader: :space_invader: :space_invader:

    • plot_horizontal_per_generation and horizontal_per_generation added
    • model_list now accepts a dictionary of probabilities, however this only affects new Random Templates
    • :seedling: improved the genetic algorithm for new model generation
    • minor improvement to generate_score_per_series for handling very small ~e-20 errors
    • added PytorchForecasting to available models
    • Johansen Cointegration transformer
    • BTCD transformer
    • Johansen and BTCD as Regression features
    • fixed bug in plot_horizontal()
    • added ARCH to available models
    • changed the sklearn models used by UnivariateRegression by default and returned to default model_list
    • fixed a bug in KerasRNN
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.4.2-py3-none-any.whl(475.47 KB)
    AutoTS-0.4.2.tar.gz(456.93 KB)
  • 0.4.1(May 16, 2022)

    Latest :fireworks: :fireworks:

    • Replaced ZeroesNaive model with ConstantNaive
    • updated the General starting template
    • added 'window' to AverageValueNaive
    • added :octocat: load_artificial sample dataset
    • fixed bug in plot_horizontal where not handling negative series
    • major update to Constraint functionality
    • GluonTS is no longer part of the default model list (faster tests this way) but is now part of 'best'
    • horizontal models_to_use for Mosaic ensembles
    • added some intel optimizations to sklearn code if scikit-learn-intelex installed
    • fixed a :bug: in rolling_x_regressor where datepart method wasn't actually getting appended
    • sped up rolling_x_regressor by reducing concats
    • added current_model_file as an option for additional debugging information
    • updated PCA and FastICA to be more flexible on n_components
    • fixed a bug where unpack_ensemble_models with keep_ensemble=False was still keeping nested ensembles
    • impute speed optimizations for fill_mean, use of nan check so runs faster if no nan present
    • optimizations to metrics including faster if no NaN present
    • :heavy_plus_sign: faster percentile function, used in transforms, basics
    • also added nan_checks to switch between numpy na and numpy non-na quantiles/medians
    • made fake_date_fill nan method vectorized
    • slightly adjusted the upper/lower forecast method for LastValueNaive :crystal_ball:
    • updated sliding_window_view to allow Motifs to run on Numpy < 1.20 and also for faster WindowRegression
    • updated regressor_used and used_regressor_check so they should be more reliably filled.
    • changed behavior where import_templates would fail if model_list not satisified. Still fails, but now only for the "only" import option
    • added :chart_with_upwards_trend: when a model in validation is the best so far that round
    • addition of "auto" and "max" num_validations with auto set as default
    • addition of new metrics: mqae, oda, maxe
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.4.1-py3-none-any.whl(459.54 KB)
    AutoTS-0.4.1.tar.gz(443.17 KB)
  • 0.4.0(Feb 7, 2022)

    Latest

    • Note: the plan is to replace ZeroesNaive model with ConstantNaive in a future release
    • fix bug where score was failing to generate if made_weighting > 0 and forecast_length = 1
    • made MADE functional on forecast_length=1 if df_train is provided
    • SMAPE now in repr of fit AutoTS class
    • contour now works on forecast_length = 1
    • Added NeuralProphet model
    • made the probabilistic modeling of MultivariateRegression a parameter which only occurs when 'deep' mode is active (too slow)
    • added more params to pass through to Prophet
    • add phi damping to Detrend transformer
    • add window slice to Detrend transformer
    • added 'simple_2" datepart method
    • added package to conda-forge
    • preclean method added to AutoTS
    • added median and midhinge point_methods to BestN Ensembles
    • added additional model selections to 'simple' and 'subsample' ensemble
    • switch LightGBM back to MultiOutputRegressor from RegressorChain for speed (with LightGBMRegressorChain replacing)
    • removed top-level datasets requests dependency
    • Added EWMAFilter
    • improved NaN in forecast check
    • added fail_on_forecast_nan (bool) to AutoTS.predict and model_forecast, if False, can now allow forecasts with NaN to be returned
    • add return_model to model_forecast for model and transformer
    • fixed bug where Detrend failing with non-datetime index
    • improved error handling in Transformers to explicitly reference which failed
    • added random.seed() setting in AutoTS which actually seems to standardize the runs
    • sped up assembling/concat of horizontal ensembles for large numbers of series
    • added polynomial_degree to date_part (and ~Transformer and ~Regression)
    • updated infer_frequency and utilized in model base class
    • added additional datasets (analytics.gov and severe weather) to load_lively_daily and modified pytrends load
    • added rps to metrics (although no plans to build it into evaluation)
    • added 'Ridge' and 'GaussianProcessRegressor' as model options for Regressions
    • enforcing consistency on inner n_jobs with MultiOutputRegressor
    • add DynamicFactorMQ model from Statsmodels
    • added plot_per_series_smape and list_failed_model_types to output more run information from AutoTS class
    • increased number of best per series models added to models to validate (models to validate has become more of a baseline than a firm number)
    • finally transitioned ensemble parameter fully to a list from the original comma-sep string list
    • MLE and iMLE logarithmic metrics for targeting under- and over- estimation
    • MAGE metric for error on rollup forecasts
    • Mosaic ensembles now include a metric_weighting variation including MAE, RMSE and SPL weighting (abs error, square error, pl error) (unscaled)
    • minor but noticeable speedups to TemplateWizard and inferred_normal functions
    • added EventRiskForecast for determing risk of exceeding limits (should be considered in beta for now)
    • back_forecast now has tail/eval_periods configured
    • changed behavior of import_template, by default simple ensembles are unpacked but no longer included in template unless include_ensemble is True.
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.4.0-py3-none-any.whl(449.97 KB)
    AutoTS-0.4.0.tar.gz(430.91 KB)
  • 0.3.12(Dec 5, 2021)

  • 0.3.11(Nov 29, 2021)

  • 0.3.10(Nov 4, 2021)

    Latest

    • BestN ensembles now support weighting model components
    • cluster-based and generate_score_per_series-based 'simple' ensembles
    • 'univariate' model_list added
    • similarity and custom cross validation now set initial evaluation segment
      • validation_test_indexes and train now include initial eval segment
    • 'subsample' ensemble expansion of 'simple'
    • added Theta model from statsmodels
    • added ARDL model from statsmodels
    • expanded UnobservedComponents functionality, although it still fails on some params for unknown reasons
    • fixed bug in AutoTS.predict() where it was breaking regressors in some cases
    • transition from [] to None as default for no future_regressor
    • enforce more extensive failing if regression_type==User and no regressor passed
    • fixed regressor handling in DatepartRegression
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.3.10-py3-none-any.whl(427.43 KB)
    AutoTS-0.3.10.tar.gz(409.74 KB)
  • 0.3.9(Oct 31, 2021)

    Latest

    • update validation template creation for horizontal ensembles
    • made MultivariateRegression probabilistic
    • fixed bug where weighting didn't take floats
    • pushed the evaluate options from a separate function to part of the PredictionObject
    • added 'custom' validation option
    • added "similarity" validation option
    • SectionalMotif model added
    • window functions grouped in module
    • fixed bugs in holiday_flag
    • holiday_flag now has holiday categorical encoding option and works better on sub-daily data
    • create_regressor handle categorical features
    • 'superfast' transformer_dict now adjusts fillna methods as well
    • optimizing metric calculation runtimes (feel the speed of 500 µs savings!)
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.3.9-py3-none-any.whl(423.14 KB)
    AutoTS-0.3.9.tar.gz(405.54 KB)
  • 0.3.8(Oct 17, 2021)

    Latest

    • add Transformer model to sklearn DNN models
    • expanded and tuned KerasRNN model options
    • added param space for RandomForest, ExtraTrees, Poisson, and RANSAC regressions
    • removed Tensorflow models from UnivariateRegression as it can cause a crash with GPU training
    • added create_regressor function
    • two new impute methods (KNNImputer, IterativeImputerExtraTrees), but only with "all" transformers
    • deletion of old TSFresh model, which was horribly slow and not going to get any faster
    • optimizing scalability by tuning transformer and imputation defaults
    • MultivariateRegression model (RollingRegression but 1d to models)
    • fix for generate_score_per_series bug with all zeroes series
    • bug fix for where horizontal ensembles failed if series_ids/column names were integers
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.3.8-py3-none-any.whl(417.56 KB)
    AutoTS-0.3.8.tar.gz(400.65 KB)
  • 0.3.7(Oct 4, 2021)

    Latest

    • bug fix in fake_date imputation
    • bug fix in Round
    • make SinTrend fail if it fails on all series (may revert this)
    • load_linear and load_sine artificial datasets
    • new NVAR model based on https://github.com/quantinfo/ng-rc-paper-code/
    • tuning retrieve_regressor to allow it to better work with multioutput and univariate
    • expand GluonTS models included
    • GluonTS now works on univariate inputs
    • GluonTS now works with regressors
    • fixed bug where model_count wrong for mosaic ensembles
    • fixed bug in VECM that meant it didn't couldn't utilize future_regressor
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.3.7-py3-none-any.whl(410.80 KB)
    AutoTS-0.3.7.tar.gz(395.64 KB)
  • 0.3.6(Sep 14, 2021)

    Latest

    • back_forecast for forecast on training data
    • Mosaic ensembles can now be used beyond training forecast_length and for shorter lengths too
    • best_model_name, best_model_params, and best_model_transformation_params AutoTS attributes now available
    • mean, median, and ffill NaN now handle fully NaN series by returning 0.
    • fixed bug that was causing mosaic generalization to fail if ffill/bfill handled all missing values
    • STLFilter and HPFilter and convolution_filter Transformers added
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.3.6-py3-none-any.whl(406.10 KB)
    AutoTS-0.3.6.tar.gz(391.08 KB)
  • 0.3.5(Aug 30, 2021)

    Latest

    • New Transfromer ScipyFilter
    • New models Univariate and MultivariateMotif
    • 'midhinge' and "weighted_mean" to AverageValueNaive
    • Add passing regressors to WindowRegression and made more efficient window generation
    • more plotting methods: plot_horizontal_transformers
    • for most -Regression type models, model_params is now treated as kwargs and can accept any args for that model
    • ExtraTrees and RadiusRegressor to -Regression type models
    • bug fix in generate_score_per_series
    • 'Generation' now tracked in results table, plus plotting method for generation loss
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.3.5-py3-none-any.whl(402.72 KB)
    AutoTS-0.3.5.tar.gz(387.80 KB)
  • 0.3.4(Aug 22, 2021)

    Latest

    • improvements to joblib parallelized models (not copying the full df)
    • additonal parameter checks
    • made "auto" cpu_count even more conservative
    • improved 'Score' generation. It should now be more equally weighted across metrics.
    • fixed potential bug for horizontal ensemble selection if perfect forecasts were delivered
    • Horizontal ensembles now chosen by combination of multiple metrics and metric_weighting (mae, rmse, spl, contour)
    • re-weighted fillna probabilities for random choice
    • addressed a few deprecation warnings
    • new plot_horizontal() function for AutoTS to quickly visual horizontal ensembles
    • Probabilistic and HDist ensembles are now deprecated (they can still be run by model_forecast but not by AutoTS class)
    • new introduce_na parameter which makes series more robust to the last values being NaN in final but never in any validation
    • Mosaic Ensembles! These can offer major improvements to MAE, but are also less stable than horizontal ensembles.
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.3.4-py3-none-any.whl(399.19 KB)
    AutoTS-0.3.4.tar.gz(384.41 KB)
  • 0.3.3(Aug 5, 2021)

    Latest

    • Fixed horizontal ensembles running in univariate cases (they are explicitly multivariate)
    • 'superfast' transformer list added
    • test on Mac for the first time, everything seems to work except lightgbm
    • include first actual unittests (from existing test.py runs)
    • slight change to random template generation to make sure all models are choosen at least once
    • cleaned up PredictWitch -> model_forecast() a bit so that users can use it to run single models from parameters directly
    • added load_live_daily() example data and spruced up production_example.py
    • tried in vain to make a quiet verbosity option for GluonTS
    • added create_lagged_regressor
    • added Greykite model (additional regressors not working yet)
    • fixed regressors bug in Prophet
    • added a simple plot method to PredictionObject
    • fix for deprecation warning in GLS
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.3.3-py3-none-any.whl(394.20 KB)
    AutoTS-0.3.3.tar.gz(379.56 KB)
  • 0.3.2(Jul 1, 2021)

    Latest

    • Table of Contents to Extended Tutorial/Readme.md
    • Production Example
    • add weights="mean"/median/min/max
    • UnivariateRegression
    • fix check_pickle error for ETS
    • fix error in Prophet with latest version
    • VisibleDeprecation warning for hidden_layers random choice in sklearn fixed
    • prefill_na option added to allow quick filling of NaNs if desired (with zeroes for say, sales forecasting)
    • made horizontal generalization more stable
    • fixed bug in VAR where failing on data with negatives
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.3.2-py3-none-any.whl(384.75 KB)
    AutoTS-0.3.2.tar.gz(372.35 KB)
  • 0.3.1(Mar 24, 2021)

    Latest

    • Additional models to GluonTS
    • GeneralTransformer transformation_params - now handle None or empty dict
    • cleaning up of the appropriately named 'ModelMonster'
    • improving MotifSimulation
    • better error message for all models
    • enable histgradientboost regressor, left it out before thinking it wouldn't stay experimental this long
    • import_template now has slightly better method input style
    • allow ensemble parameter to be a list
    • NumericTransformer
      • add .fit_transform method
      • generally more options and speed improvement
    • added NumericTransformer to future_regressors, should now coerce if they have different dtypes
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.3.1-py3-none-any.whl(381.01 KB)
    AutoTS-0.3.1.tar.gz(369.20 KB)
  • 0.3.0(Jan 24, 2021)

    Latest

    • breaking change to model templates: transformers structure change
      • grouping no longer used
    • parameter generation for transformers allowing more possible combinations
    • transformer_max_depth parameter
    • Horizontal Ensembles are now much faster by only running models on the subset of series they apply to
    • general starting template improved and updated to new transformer format
    • change many np.random to random
      • random.choices further necessitates python 3.6 or greater
    • bug fix in Detrend transformer
    • bug fix in SeasonalDifference transformer
    • SPL bug fix when NaN in test set
    • inverse_transform now fills NaN with zero for upper/lower forecasts
    • expanded model_list aliases, with dedicated module
    • bug fix (creating 0,0 order) and tuning of VARMAX
    • Fix export_template bug
    • restructuring of some lower-level function locations
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.3.0-py3-none-any.whl(377.82 KB)
    AutoTS-0.3.0.tar.gz(365.89 KB)
  • 0.2.8(Dec 13, 2020)

    Latest

    • Round transformer to replace coerce_integer, ClipOutliers expanded, Slice to replace context_slicer
    • pd.df Interpolate methods added to FillNA options, " " to "_" in names, rolling_mean_24
    • slight improvement to printed progress messages
    • transformer_list (also takes a dict of value:probability) allows adjusting which transformers are created in new generations.
      • this does not apply to transformers loaded from imported templates
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.2.8-py3-none-any.whl(372.94 KB)
    AutoTS-0.2.8.tar.gz(361.95 KB)
  • 0.2.7(Nov 30, 2020)

    Latest

    • 2x speedup in transformation runtime by removing double transformation
    • joblib parallel to UnobservedComponents
    • ClipOutliers transformer, Discretize Transformer, CenterLastValue - added in prep for transform template change
    • bug fix on IntermittentOccurence
    • minor changes to ETS, now replaces single series failure with zero fill, damped now is damped_trend
    • 0.3.0 is expected to feature a breaking change to model templates in the transformation/pre-processing
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.2.7-py3-none-any.whl(371.33 KB)
    AutoTS-0.2.7.tar.gz(360.35 KB)
  • 0.2.6(Oct 25, 2020)

    Latest

    • fix verbose > 2 error in auto_model
    • use of f-strings to print some error messages. Python 3.5 may see more complicated error messages as a result.
    • improved BestN (formery Best3) Ensembles, ensemble collected in dicts
    • made Horizontal and BestN ensembles tolerant of a component model failure
    • made Horizontal models capable of generalizing from a subset of series
    • added info to model table for models that can use future_regressor
    • added Datepart Regression model, sklearn regressor on time components only
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.2.6-py3-none-any.whl(369.82 KB)
    AutoTS-0.2.6.tar.gz(358.84 KB)
  • 0.2.5(Oct 7, 2020)

  • 0.2.4(Sep 30, 2020)

  • 0.2.3(Sep 23, 2020)

  • 0.2.2(Jun 28, 2020)

  • 0.2.1(Jun 5, 2020)

  • 0.2.0(May 31, 2020)

    Latest:

    Added Github Pages documentation
    Changed default for `series_id` so it is no longer required if univariate
    Changed default of `subset` to None.
    Removed `weighted` parameter, now passing weights to .fit() alone is sufficient.
    Fixed a bug where 'One or more series is 90% or more NaN' was printing when it shouldn't
    Fixed (or more accurately, reduced) a bug where multiple initial runs were counting as validation runs.
    Fixed bug where validation subsetting was behaving oddly
    Fixed bug where regressor wasn't being passed to validation.
    Renamed preord_ to future_ regressor.
    Renamed sample datasets.
    Allowed export of result_file as .pickle along with more complete object.
    Added model_interrupt parameter to allow for manually skipping models when enabled.
    Made serious efforts to make the code prettier with pylint, still lots to do, however...
    Improved genetic recombination so optimal models should be reached more quickly
    Improved Point to Probabilistic methods:
    	'historic_quantile' more stable quantile-based error ranges
    	'inferred normal' Bayesian-inspired method
    Metrics:
    	Added Scaled Pinball Loss (SPL)
    	Removed upper/lower MAE
    Improved ensembling with new parameter options
    	Recursive ensembling (ensemble of ensembles) now enabled
    Validation:
    	Added 'seasonal' validation method
    Categorical transformer improved, now tolerant to leaving bounds.
    Added remove_leading_zeroes option for convenience.
    Added a number of new Transformer options
    	Multiple new Sklearn-sourced transformers (QuantileTransformer, etc)
    	SinTrend
    	DifferencedDetrend
    	CumSumTransformer
    	PctChangeTransformer
    	PositiveShift Transformer
    	Log
    	IntermittentOccurrence
    	SeasonalDetrend
    	bkfilter and cffilter
    	DatepartRegression
    Entirely changed the general transformer to add ~~three~~ four levels of transformation.
    Allowed context_slicer to receive direct integer inputs
    Added new 'Detrend' options to allow more sklearn linear models.
    GLM
    	Error where it apparently won't tolerate any zeroes was compensated for.
    	Speed improvement.
    RollingRegression
    	Added SVM model
    	Added option to tune some model parameters to sklearn
    	Added new feature construction parameters
    	Added RNNs with Keras
    GluonTS:
    	fixed the use of context_length, added more options to that param
    Dynamic Factor added uncertainty from Statsmodels Statespace
    VARMAX added uncertainty from Statsmodels Statespace
    New models:
    	SeasonalNaive model
    	VAR from Statsmodels (faster than VARMAX statespace)
    	MotifSimulation
    	WindowRegression
    	TensorflowSTS
    	TFPRegression
    	ComponentAnalysis
    
    Source code(tar.gz)
    Source code(zip)
    AutoTS-0.2.0-py3-none-any.whl(580.53 KB)
    AutoTS-0.2.0.tar.gz(1.14 MB)
  • 0.2.0a2(May 22, 2020)

Owner
Colin Catlin
Data Scientist ----- 'Come let us drag one of our dark ships to the bright salt sea'
Colin Catlin
Time series forecasting with PyTorch

Our article on Towards Data Science introduces the package and provides background information. Pytorch Forecasting aims to ease state-of-the-art time

Jan Beitner 2.5k Jan 2, 2023
ETNA is an easy-to-use time series forecasting framework.

ETNA is an easy-to-use time series forecasting framework. It includes built in toolkits for time series preprocessing, feature generation, a variety of predictive models with unified interface - from classic machine learning to SOTA neural networks, models combination methods and smart backtesting. ETNA is designed to make working with time series simple, productive, and fun.

Tinkoff.AI 674 Jan 7, 2023
Nixtla is an open-source time series forecasting library.

Nixtla Nixtla is an open-source time series forecasting library. We are helping data scientists and developers to have access to open source state-of-

Nixtla 401 Jan 8, 2023
ETNA – time series forecasting framework

ETNA Time Series Library Predict your time series the easiest way Homepage | Documentation | Tutorials | Contribution Guide | Release Notes ETNA is an

Tinkoff.AI 675 Jan 8, 2023
Continuously evaluated, functional, incremental, time-series forecasting

timemachines Autonomous, univariate, k-step ahead time-series forecasting functions assigned Elo ratings You can: Use some of the functionality of a s

Peter Cotton 343 Jan 4, 2023
AtsPy: Automated Time Series Models in Python (by @firmai)

Automated Time Series Models in Python (AtsPy) SSRN Report Easily develop state of the art time series models to forecast univariate data series. Simp

Derek Snow 465 Jan 2, 2023
A machine learning toolkit dedicated to time-series data

tslearn The machine learning toolkit for time series analysis in Python Section Description Installation Installing the dependencies and tslearn Getti

null 2.3k Jan 5, 2023
Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth.

Prophet: Automatic Forecasting Procedure Prophet is a procedure for forecasting time series data based on an additive model where non-linear trends ar

Facebook 15.4k Jan 7, 2023
Open source time series library for Python

PyFlux PyFlux is an open source time series library for Python. The library has a good array of modern time series models, as well as a flexible array

Ross Taylor 2k Jan 2, 2023
Automatic extraction of relevant features from time series:

tsfresh This repository contains the TSFRESH python package. The abbreviation stands for "Time Series Feature extraction based on scalable hypothesis

Blue Yonder GmbH 7k Jan 6, 2023
A unified framework for machine learning with time series

Welcome to sktime A unified framework for machine learning with time series We provide specialized time series algorithms and scikit-learn compatible

The Alan Turing Institute 6k Jan 6, 2023
A statistical library designed to fill the void in Python's time series analysis capabilities, including the equivalent of R's auto.arima function.

pmdarima Pmdarima (originally pyramid-arima, for the anagram of 'py' + 'arima') is a statistical library designed to fill the void in Python's time se

alkaline-ml 1.3k Dec 22, 2022
A machine learning toolkit dedicated to time-series data

tslearn The machine learning toolkit for time series analysis in Python Section Description Installation Installing the dependencies and tslearn Getti

null 2.3k Dec 29, 2022
Probabilistic time series modeling in Python

GluonTS - Probabilistic Time Series Modeling in Python GluonTS is a Python toolkit for probabilistic time series modeling, built around Apache MXNet (

Amazon Web Services - Labs 3.3k Jan 3, 2023
STUMPY is a powerful and scalable Python library for computing a Matrix Profile, which can be used for a variety of time series data mining tasks

STUMPY STUMPY is a powerful and scalable library that efficiently computes something called the matrix profile, which can be used for a variety of tim

TD Ameritrade 2.5k Jan 6, 2023
A Python package for time series classification

pyts: a Python package for time series classification pyts is a Python package for time series classification. It aims to make time series classificat

Johann Faouzi 1.4k Jan 1, 2023
Python module for machine learning time series:

seglearn Seglearn is a python package for machine learning time series or sequences. It provides an integrated pipeline for segmentation, feature extr

David Burns 536 Dec 29, 2022
Automatically build ARIMA, SARIMAX, VAR, FB Prophet and XGBoost Models on Time Series data sets with a Single Line of Code. Now updated with Dask to handle millions of rows.

Auto_TS: Auto_TimeSeries Automatically build multiple Time Series models using a Single Line of Code. Now updated with Dask. Auto_timeseries is a comp

AutoViz and Auto_ViML 519 Jan 3, 2023
A Python toolkit for rule-based/unsupervised anomaly detection in time series

Anomaly Detection Toolkit (ADTK) Anomaly Detection Toolkit (ADTK) is a Python package for unsupervised / rule-based time series anomaly detection. As

Arundo Analytics 888 Dec 30, 2022