Skip to content

Latest commit

 

History

History
185 lines (129 loc) · 8.21 KB

File metadata and controls

185 lines (129 loc) · 8.21 KB

v0.8.0 (2026-05-05)

Added

  • LLM-based forecasting (#155): TimeLLMForecaster (patch → cross-attention with prototypes → decode) and LLMPSForecaster (multi-scale CNN pattern extraction → decode). 15 tests. PR #200.
  • Agentic forecasting (#156): TimeSeriesScientist multi-agent pipeline with Curator, Planner, Forecaster, and Reporter agents. 87 tests with TDD edge-case coverage. PR #188, #197.
  • KASBA Rust port (#189): Port of KASBA clustering algorithm into src/kasba/ — MSM distance, elastic k-means++ init, triangle inequality fast assignment, stochastic barycenter averaging, empty cluster recovery. 16 Rust unit tests. PR #198, #199.
  • Contrastive clustering (#154): Self-supervised contrastive learning with NT-Xent loss. PR #187.
  • Deep clustering (#157): DEC/IDEC autoencoder-based deep clustering. PR #187.
  • Foundation model forecasting (#151): ChronosForecaster, TimesFMForecaster, MoiraiForecaster for zero-shot forecasting. PR #186.
  • Native DL forecasters (#150): NBEATSForecaster and PatchTSTForecaster with fit/predict API. PR #186.
  • Deep classifiers (#152): RocketClassifier, InceptionTimeClassifier, ResNetClassifier. PR #186.
  • Causal inference (#153): CausalImpact (Bayesian structural counterfactual) and SyntheticControl with placebo tests. PR #183.
  • Covariates support (#149): Past, future, and static exogenous variables in ForecastPipeline. PR #181.
  • Backtesting framework (#167): Unified fit → predict → score across rolling windows. PR #184.
  • Bayesian methods (9 modules): Kalman Filter (#141), BSTS (#142), UKF/EnKF (#143), Bayesian ETS (#169), Bayesian VAR (#170), MCMC wrapper (#174), GP regression (#175), Bayesian anomaly scoring (#176), Particle Filter (#180).

Infrastructure

  • Registry-based __init__.py for lazy imports (#144).
  • Shared lazy-import helper for submodules (#145, PR #172).
  • Notebook normalization pre-commit hook (#146, PR #172).
  • Consolidated test fixtures (#147, PR #173).

Documentation

  • Notebooks 11 (imaging), 12 (advanced features), 13 (agentic forecasting).

v0.7.0 (2026-04-25)

Features

  • Add HDBSCAN/DBSCAN density-based clustering with precomputed distance matrices (#106).
  • Add agglomerative/hierarchical clustering with dendrograms (#107).
  • Add k-means with DBA (DTW Barycentric Averaging) clustering (#108).
  • Add CLARA/CLARANS scalable k-medoids variants (#109).
  • Add ROCKET/MiniRocket feature extraction for clustering (#111).
  • Add U-Shapelet clustering for time series (#112).
  • Add Chronos/MOMENT embedding adapters for clustering (#113).
  • Add spectral clustering with SBD kernel (K-Spectral Centroid) (#125).
  • Add auto_cluster automated clustering pipeline selection (#126).

Fixes

  • Bump rand 0.8.5 → 0.8.6 to resolve GHSA-cq8v-f236-94qc (#124).
  • Upgrade rustls-webpki 0.103.12 → 0.103.13 for GHSA-82j2-j2ch-gfr8 (#110).
  • Add scipy to clustering optional dependency (required by spectral clustering).
  • Add pytest.importorskip guards for tests requiring scipy/sklearn.
  • Fix mypy type errors in auto_cluster module.

Documentation

  • Replace 7 API-demo notebooks with 10 theme-based tutorials (#89).
  • Add polars-ts logo image for README banner (#88).

Tests

  • Add SCUM ensemble model tests (#90).

v0.6.0 (2026-04-21)

Features

  • Add ARIMA/SARIMA forecasting with explicit (p,d,q) order control via statsmodels.SARIMAX (arima_fit, arima_forecast).
  • Add automatic ARIMA order selection via statsforecast.AutoARIMA (auto_arima).
  • Both ARIMA backends raise helpful ImportError when optional dependencies are missing.

Performance

  • Accelerate exponential smoothing (SES, Holt, Holt-Winters) with Rust implementation (#86).
  • Accelerate k-medoids PAM clustering with Rust implementation (#84).

Improvements

  • CI: replace pre-commit with prek (Rust reimplementation) for faster code-quality checks.
  • CI: add ty type checker as non-blocking informational job alongside mypy.
  • Add [tool.ty] configuration section in pyproject.toml.
  • Document prek and ty local developer workflows in README.

Tests

  • Expand coverage for HF adapter, clustering, calibration, and adapters (#85).
  • Expand coverage for changepoint, clustering, adapters, and standalone modules (#83).
  • Add 8 ARIMA tests (5 statsmodels, 3 statsforecast-gated).

v0.5.0 (2026-04-16)

Features

  • Add KShape time series clustering using shape-based distance with centroid computation.
  • Add KShape time series classifier.
  • Add k-Medoids (PAM) time series clustering (kmedoids) using any of the 12 distance metrics.
  • Add k-Nearest Neighbors time series classification (knn_classify) using any of the 12 distance metrics.
  • Add SBD (Shape-Based Distance) metric (compute_pairwise_sbd).
  • Add Frechet distance metric (compute_pairwise_frechet).
  • Add EDR (Edit Distance on Real Sequences) metric (compute_pairwise_edr).

Improvements

  • Add shared distance dispatch utility (_distance_dispatch) for reuse across clustering and classification.
  • Upgrade Rust dependencies: pyo3 0.25, polars crate 0.49.1.
  • Add py.typed marker for PEP 561 type hint distribution.
  • Add lazy import system for optional dependencies (forecast, decomposition).
  • CI: add coverage reporting, MkDocs deployment workflow, polars compatibility matrix (1.30–1.33).

Tests

  • Add 85 tests for k-NN classification covering correctness, custom columns, and multiple metrics.
  • Add 84 tests for k-Medoids clustering covering output, correctness, edge cases, and multiple metrics.
  • Add 90 tests for KShape clustering.
  • Add 85 tests for KShape classifier.
  • Add tests for SBD, Frechet, EDR distance metrics.
  • Add unified API tests for all 12 distance metrics.
  • Add 52 lazy import tests for optional dependency handling.

v0.4.0 (2026-04-14)

Features

  • Add Sen's slope estimator (sens_slope) — robust median-of-pairwise-slopes trend magnitude.
  • Add CUSUM changepoint detection (cusum) — cumulative sum control chart for mean shift detection.
  • Add anomaly flagging to decomposition methods via anomaly_threshold parameter.
  • Add ERP (Edit Distance with Real Penalty) distance metric (compute_pairwise_erp).
  • Add LCSS (Longest Common Subsequence) distance metric (compute_pairwise_lcss).
  • Add TWE (Time Warp Edit Distance) distance metric (compute_pairwise_twe).
  • Add FastDTW approximate algorithm (method="fast", param=radius).
  • Add Sakoe-Chiba band constraint (method="sakoe_chiba", param=window_size).
  • Add Itakura parallelogram constraint (method="itakura", param=max_slope).
  • compute_pairwise_dtw now accepts optional method and param arguments (backward compatible).

Improvements

  • Add unified compute_pairwise_distance(method=...) API — single entry point for all 9 distance metrics.
  • Deduplicate Rust distance code into shared utils.rs (grouping, hashing, parallel pairwise).
  • Optimize all distance metrics to O(m) memory with two-row DP.
  • Add #[pyo3(signature)] annotations for Rust safety with pyo3 0.24+.
  • Add pyarrow as core dependency for reliable Arrow interchange.
  • Lightweight core: optional dependencies (forecast, decomposition) are lazy-loaded.
  • CI: add minimal-deps job, polars compatibility matrix, clippy, and code-quality checks.

Fixes

  • Upgrade Rust dependencies (pyo3 0.24, pyo3-polars 0.21, polars crate 0.48).
  • Pin Python polars to >=1.30.0,<2.0.0 for ABI compatibility.
  • Fix trailing space in freqs docstring causing mkdocs strict build failure.

Tests

  • Add 286 tests covering all distance metrics, decomposition, trend, changepoint, and edge cases.
  • Add input validation, edge case, and parallelism stress tests for distance metrics.

v0.3.0

Features

  • Implement Seasonal Decomposition.
  • Implement Fourier Decomposition.
  • Implement Naive Dynamic Time Warping.

v0.2.0

Features

  • Implement Mann-Kendall's Trend Statistic.

Chore

  • Make library usable on PyPI with the Rust expressions.

v0.1.0

Features

  • Implement Kaboudan metric.

Documentation

Chore

  • Initialize Repo.