Skip to content

Latest commit

 

History

History
138 lines (111 loc) · 9.51 KB

HISTORY.rst

File metadata and controls

138 lines (111 loc) · 9.51 KB

History

1.0.0 (2024-01-07)

  • Greykite AD (Anomaly Detection) is now available.

It improves upon the out-of-box confidence intervals generated by Silverkite, by automatically tuning the confidence intervals and other filters (e.g. based on Absolute Percentage Error (APE)) using expected alert rate information and/ or anomaly labels, if available. It allows the users to define robust objective function, constraints and parameter space to optimize the confidence intervals. For example user can target a minimal recall level of 80% while maximizing precision. Additionally, the users can specify a minimum error level to filter out anomalies that are not business relevant. The motivation to include criteria other than statistical significance is to bake in material/ business impact into the detection.

  • @Reza Hosseini: Devised the core anomaly detection library structure. Added base Detector module.
  • @Reza Hosseini: Added ~greykite.detection.detector.reward.Reward that allows users to specify and optimize robust anomaly detection objectives.
  • @Sayan Patra: Added GreykiteDetector module that builds anomaly detection based on Greykite forecasting.
  • @Sayan Patra: Added tutorials for Greykite anomaly detection.
  • New features and methods
    • @Reza Hosseini: Added ~greykite.common.features.outlier.ZScoreOutlierDetector and ~greykite.common.features.outlier.TukeyOutlierDetector, improved outlier detection modules.
    • @Sayan Patra: Added ~greykite.detection.common.pickler.GreykitePickler. This improves the pickling function for Greykite models and allows to store the model in a single file.
    • @Yi-Wei Lu: Added DifferenceBasedOutlierTransformer that can identify outliers in the sklearn pipeline.
  • Library enhancements
    • @Kaixu Yang: Added scipy solver to make quantile regression more stable.
    • @Qiang Fei: Updated auto_holiday functionality to use holiday groupers for improved forecast performance in holiday periods.
    • @Katherine Li: Improved changepoint detection method that can identify level shifts.
  • Bug fixes
    • @Reza Hosseini @Sayan Patra @Yi Su @Qiang Fei @Kaixu Yang @Phil Gaudreau: Other library enhancements and bug fixes.

0.5.1 (2023-06-01)

Loosen dill package requirements.

0.5.0 (2023-04-03)

Python 3.10 support.

  • New features and methods
    • Improvements on modeling holidays
      • @Yi Su: Added HolidayGrouper. Holidays with a similar effect are grouped together to have fewer and more robust coefficients. With this feature, holidays are better modeled with improved forecast accuracy.
      • @Kaixu Yang: Added support for holiday neighboring impact for data with frequency longer than daily through the daily_event_neighbor_impact parameter (e.g. this enables modeling holidays on weekly data where the event dates may not fall on the exact timestamps); added holiday neighboring events (i.e. the lags of an actual holiday can be specified in the model) through the daily_event_shifted_effect parameter.
      • @Yi Su: Added holiday indicators. Now users can specify "is_event_exact", "is_event_adjacent", "is_event" (a union of both) as extra_pred_cols in the model.
    • @Reza Hosseini: Added DST indicators. Now users can specify "us_dst" or "eu_dst" in extra_pred_cols. You may also use get_us_dst_start/end, get_eu_dst_start/end functions to get the dates.
    • @Yi Su: Theoretical improvements for the volatility model in linear and ridge algorithm for more accurate variance estimate and prediction intervals.
    • @Phil Gaudreau: Added new evaluation metric: mean_interval_score.
    • @Brian Vegetabile: Enhanced components plot that consolidates previous forecast breakdown functionality. The redesign provides a cleaner visual and allows for flexible breakdowns via regular expressions.
  • Library enhancements
    • @Kaixu Yang: Python 3.10 support. Deprecated support for lower Python versions.
    • @Sayan Patra: New utility function: get_exploratory_plots to easily generate exploratory data analysis (EDA) plots in HTML.
    • @Kaixu Yang: Added optimize_mape option to quantile regression. It uses 1 over y as weights in the loss function.
  • Bug fixes
    • @Qiang Fei: In case of simulation, now min_adimissible_value and max_adimissible_value will correctly cap the simulated values. Additionally, errors are propagated through simulation steps to make the intervals more accurate.
    • @Yi Su, @Sayan Patra: Now train_end_date is always respected if specified by the user. Previously it got ignored if there are trailing NA’s in training data or anomaly_df imputes the anomalous points to NA. Also, now train_end_date accepts a string value.
    • @Yi Su: The seasonality order now takes None without raising an error. It will be treated the same as False or zero.

0.4.0 (2022-07-15)

  • New features and methods
    • @Reza Hosseini: Forecast interpretability. Forecasts can now be broken down to grouped components: trend, seasonality, events, autoregression, regressors, intercept, etc.
    • @Sayan Patra: Enhanced components plot. Now supports autoregression, lagged regressors, residuals; adds support for centering.
    • @Kaixu Yang: Auto model components. (1) seasonality inferrer (2) holiday inferrer (3) automatic growth.
    • @Kaixu Yang: Lag-based estimator. Supports lag-based forecasts such as week-over-week.
    • @Reza Hosseini: Fast simulation option. Provides a better accuracy and speed for mean prediction when simulation is used in autoregression.
    • @Kaixu Yang: Quantile regression option for Silverkite fit_algorithm.
  • New model templates
    • @Kaixu Yang: AUTO. Automatically chooses templates based on the data frequency, forecast horizon and evaluation configs.
    • @Reza Hosseini, @Kaixu Yang: SILVERKITE_MONTHLY - a SimpleSilverkite template designed for monthly time series.
    • @Kaixu Yang: SILVERKITE_WOW. Uses Silverkite to model seasonality, growth and holiday effects, and then uses week-over-week to fit the residuals. The final prediction is the total of the two models.
  • New datasets
    • 4 hourly datasets: Solar Power, Wind Power, Electricity, San Francisco Bay Area Traffic.
    • 1 daily dataset: Bitcoin Transactions.
    • 2 monthly datasets: Sunspot, FRED House Supply.
  • Library enhancements and bug fixes
    • The SILVERKITE template has been updated to include automatic autoregression and changepoint detection.
    • Renamed SilverkiteMultistageEstimator to MultistageForecastEstimator.
    • Renamed the normalization method "min_max" to "zero_to_one".
    • @Reza Hosseini: Added normalization methods: "minus_half_to_half", "zero_at_origin".
    • @Albert Chen: Updated tutorials.
    • @Yi Su: Upgraded fbprophet 0.5 to prophet 1.0.
    • @Yi Su: Upgraded holidays to 0.13.
    • @Albert Chen @Kaixu Yang @Yi Su: Speed optimization for Silverkite algorithms.
    • @Albert Chen @Reza Hosseini @Kaixu Yang @Sayan Patra @Yi Su: Other library enhancements and bug fixes.

0.3.0 (2021-12-14)

  • New tutorials
    • @Reza Hosseini: Monthly time series forecast.
    • @Yi Su: Weekly time series forecast.
    • @Albert Chen: Forecast reconciliation.
    • @Kaixu Yang: Forecast one-by-one method.
  • New methods
    • @Yi Su: Lagged regressor (method was released in 0.2.0 but documentation was added in this release).
    • @Kaixu Yang @Saad Eddin Al Orjany: Model storage (method was released in 0.2.0 but documentation was added in this release).
    • @Kaixu Yang: Silverkite Multistage method for fast training on small granularity data (with tutorial).
    • @Albert Chen: Forecast reconciliation with interface and defaults optimized.
  • New model templates
    • @Yi Su: SILVERKITE_WITH_AR: The SILVERKITE template with autoregression.
    • @Yi Su: SILVERKITE_DAILY_1: A SimpleSilverkite template designed for daily data with forecast horizon 1.
    • @Kaixu Yang: SILVERKITE_TWO_STAGE: A two stage model using the Silverkite Multistage method that is good for sub-daily data with a long history.
    • @Kaixu Yang: SILVERKITE_MULTISTAGE_EMPTY: A base template for the Silverkite Multistage method.
  • Library enhancements and bug fixes
    • @Yi Su: Updated plotly to v5.
    • @Reza Hosseini: Use explicit_pred_cols, drop_pred_cols to directly specify or exclude model formula terms (see Custom Parameters).
    • @Reza Hosseini: Use simulation_num to specify number of simulations to use for generating forecasts and prediction intervals. Applies only if any of the lags in autoreg_dict are smaller than forecast_horizon (see Auto-regression).
    • @Reza Hosseini: Use normalize_method to normalize the design matrix (see Custom Parameters).
    • @Yi Su: Allow no CV and no backtest in pipeline.
    • @Albert Chen: Added synthetic hierarchical dataset.
    • Bug fix: cv_use_most_recent_splits in EvaluationPeriodParam was previously ignored.
    • @Albert Chen @Kaixu Yang @Reza Hosseini @Saad Eddin Al Orjany @Sayan Patra @Yi Su: Other library enhancements and bug fixes.

0.2.0 (2021-06-30)

  • @Kaixu Yang: Removed the dependency on fbprophet and change it to optional.
  • @Kaixu Yang @Saad Eddin Al Orjany: Added model dumping and loading for storing (see Forecaster.dump_forecast_result and Forecaster.load_forecast_result).
  • @Kaixu Yang @Reza Hosseini: Added forecast one-by-one method.
  • @Sayan Patra: Added the support of AutoArima by pmdarima, see the AUTO_ARIMA template.

0.1.1 (2021-05-12)

  • First release on PyPI.