Skip to content

v0.10.0

Latest

Choose a tag to compare

@charavelg charavelg released this 21 Oct 15:13

v0.10.0

Added

  • New tslearn.foundation module to re-use pre-trained time series models, such as
    the ones published on the Hugging Face Hub, behind the usual tslearn API. It provides
    ZeroShotForecaster, LinearProbeForecaster and the underlying
    TimeSeriesFoundationEmbedder feature extractor, which allows one to choose
    the probed layer, the tokens taken into account and the pooling applied to their
    representations. With pooling=None, the latter acts as a time series to time series
    transform, returning one representation per token, and being a regular scikit-learn
    transformer, it composes with a sklearn.pipeline.Pipeline for tasks such as linear
    probing for classification. Requires PyTorch.
  • soft-dtw related tools now support Itakura and Sakoe-Chiba global constraints. (#189)
  • Multithreading support added to cdist_soft_dtw and softdtw_barycenter. (#310)
  • TimeSeriesScalerMinMax and TimeSeriesScalerMeanVariance now offer an inverse_transform method
    to reverse the normalization. (#697)
  • tslearn.forecasting.ScaledForecastingPipeline wraps a forecaster so that it is fitted on scaled data and
    its predictions are un-scaled back, using any tslearn.preprocessing scaler. (#708)
  • Added tslearn.clustering.silhouette_samples to compute per-sample silhouette coefficients with time-series metrics. (#451)
  • SymbolicAggregateApproximation and OneD_SymbolicAggregateApproximation can now handle variable lengths

Removed

  • Support for sklearn version 1.4 is dropped

Changed

  • soft-dtw API is now consistent with other metrics regarding parameters names and backend management.
  • tslearn classes and functions can be used with top level import.

Fixed

  • Correct the discrete segment center in 1d-SAX distances, preserving the
    representative average when the slope is nonzero.
  • mase now scales each feature by its own in-sample naive forecast error, so that multioutput="uniform_average" and array-like multioutput aggregate the per-feature values returned with multioutput="raw_values" (a NumPy array multioutput previously raised ValueError). The NaN padding of variable length train_data is now ignored instead of making the result NaN.
  • lcss and lcss_path_from_metric now respect the global_constraint / Sakoe-Chiba / Itakura band, which was previously ignored. (#526)
  • gak and cdist_gak no longer return NaN for time series longer than about 405 samples. They are now normalized in log space, and the Global Alignment Kernel recursion falls back to a log-space accumulation when its value leaves the range of a 64-bit float. This also fixes TimeSeriesSVC / TimeSeriesSVR and KernelKMeans with kernel="gak" on long time series. (#450)
  • Fixed double scaling in OneD_SymbolicAggregateApproximation. (#722)
  • cdist_frechet now respects global_constraint, which was previously ignored. (#726)
  • TimeSeriesSVR now passes epsilon on to the underlying sklearn.svm.SVR, which was previously ignored so the epsilon-tube width was always the sklearn default. (#727)
  • TimeSeriesImputer(method="linear") no longer raises ValueError when a feature of a time series has no observed value. Such features are now left unchanged, as for the other imputation methods.
  • PiecewiseAggregateApproximation.distance, SymbolicAggregateApproximation.distance and OneD_SymbolicAggregateApproximation.distance now accept two time series of different lengths, instead of failing on the ragged input. (#738)
  • VARIMA and AutoVARIMA forecasts with a differencing order d of 2 or more are now integrated back correctly. They were previously integrated as if d were 1.
  • dtw_barycenter_averaging_subgradient now takes weights into account (they cancelled out in each update step), no longer returns NaN when a weight is 0, and stops based on the weighted cost over the whole epoch. (#764)
  • Performance metrics now check inputs shape consistency (#771)
  • VARIMA and AutoVARIMA forecasts are now correct for multivariate series, which previously applied the transpose of the fitted autoregressive matrices. ma_coeffs_[k] is now the lag k + 1 term, in the same order as ar_coeffs_. (#762)
  • NonMyopicEarlyClassifier now normalizes the confusion matrices stored in pyhatyck_ over the predicted classes, so that they hold the documented probabilities of predicting y_hat given the true class y and the cluster. They were previously normalized over the true classes, which gave wrong expected misclassification costs and therefore wrong prediction times. (#778)