# stream-learn -- open-source Python library for difficult data stream batch analysis

arXiv: https://arxiv.org/abs/2001.11077 · HTML: https://mlsanity.com/paper/2001.11077/

## Key facts

- Cited by 12 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 29 Jan 2020.

## Built on by (most cited first, 12 of 12)

- [A survey on learning from imbalanced data streams: taxonomy, challenges, empirical study, and reproducible experimental framework](https://mlsanity.com/paper/2204.03719/) (2022)
- [Active Weighted Aging Ensemble for Drifted Data Stream Classification](https://mlsanity.com/paper/2112.10150/) (2021)
- [Tracking changes using Kullback-Leibler divergence for the continual learning](https://mlsanity.com/paper/2210.04865/) (2022)
- [Hellinger Distance Weighted Ensemble for Imbalanced Data Stream Classification](https://mlsanity.com/paper/2102.00266/) (2021)
- [OEBench: Investigating Open Environment Challenges in Real-World Relational Data Streams](https://mlsanity.com/paper/2308.15059/) (2023)
- [Unsupervised Concept Drift Detection based on Parallel Activations of Neural Network](https://mlsanity.com/paper/2404.07776/) (2024)
- [Employing Two-Dimensional Word Embedding for Difficult Tabular Data Stream Classification](https://mlsanity.com/paper/2404.15836/) (2024)
- [Unlearning-based sliding window for continual learning under concept drift](https://mlsanity.com/paper/2603.14484/) (2026)
- [Employing chunk size adaptation to overcome concept drift](https://mlsanity.com/paper/2110.12881/) (2021)
- [Employing Sentence Space Embedding for Classification of Data Stream from Fake News Domain](https://mlsanity.com/paper/2407.10807/) (2024)
- [Unsupervised Assessment of Landscape Shifts Based on Persistent Entropy and Topological Preservation](https://mlsanity.com/paper/2410.04183/) (2024)
- [How well does Classification Accuracy capture Concept Drift Detection Quality? An overview of Concept Drift Detection evaluation](https://mlsanity.com/paper/2605.31186/) (2026)

## Abstract (arXiv)

stream-learn is a Python package compatible with scikit-learn and developed for the drifting and imbalanced data stream analysis. Its main component is a stream generator, which allows to produce a synthetic data stream that may incorporate each of the three main concept drift types (i.e. sudden, gradual and incremental drift) in their recurring or non-recurring versions. The package allows conducting experiments following established evaluation methodologies (i.e. Test-Then-Train and Prequential). In addition, estimators adapted for data stream classification have been implemented, including both simple classifiers and state-of-art chunk-based and online classifier ensembles. To improve computational efficiency, package utilises its own implementations of prediction metrics for imbalanced binary classification tasks.
