tsfresh is a Python package for automatic extraction of relevant features from time series data.
The tool addresses the time-consuming work of manual feature engineering by automatically extracting hundreds of features from time series. It combines algorithms from statistics, time-series analysis, signal processing, and nonlinear dynamics to characterize sampled data and event sequences. The extracted features describe both basic characteristics like peaks and average values as well as complex measures such as time reversal symmetry statistics. To handle the noise and irrelevant information common in time series, tsfresh includes a built-in filtering procedure based on hypothesis testing that mathematically controls the proportion of irrelevant features, allowing users to focus on characteristics that actually matter for their regression or classification tasks.
The tool suits data scientists and machine learning practitioners who work with time series data and want to reduce the manual effort spent on feature engineering. It is particularly valuable when you have time series that need to be converted into feature vectors for downstream machine learning models, and when you want statistical guarantees about feature relevance rather than relying on heuristic selection methods. The package interprets time series broadly, so it can work with any sampled data or event sequences, making it applicable across domains from sensor data to financial time series.
The project maintains active engagement with its codebase through regular updates and refinements to its feature extraction and selection algorithms. Documentation is comprehensive and accessible through a dedicated documentation site. The package has been validated through peer-reviewed research publications that describe both the core FRESH algorithm and extensions for anomaly detection using feature-based normality models.