# River: machine learning for streaming data in Python

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

## Key facts

- Cited by 98 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 8 Dec 2020.

## Built on by (most cited first, 30 of 98)

- [TinyOL: TinyML with Online-Learning on Microcontrollers](https://mlsanity.com/paper/2103.08295/) (2021)
- [A survey on learning from imbalanced data streams: taxonomy, challenges, empirical study, and reproducible experimental framework](https://mlsanity.com/paper/2204.03719/) (2022)
- [Drift-aware Collaborative Assistance Mixture of Experts for Heterogeneous Multistream Learning](https://mlsanity.com/paper/2508.01598/) (2025)
- [Adversarial Robustness of Streaming Algorithms through Importance Sampling](https://mlsanity.com/paper/2106.14952/) (2021)
- [German Text Embedding Clustering Benchmark](https://mlsanity.com/paper/2401.02709/) (2024)
- [Online AutoML: An adaptive AutoML framework for online learning](https://mlsanity.com/paper/2201.09750/) (2022)
- [A comprehensive analysis of concept drift locality in data streams](https://mlsanity.com/paper/2311.06396/) (2023)
- [A Survey on Spatio-temporal Data Analytics Systems](https://mlsanity.com/paper/2103.09883/) (2021)
- [ModelCI-e: Enabling Continual Learning in Deep Learning Serving Systems](https://mlsanity.com/paper/2106.03122/) (2021)
- [pyWATTS: Python Workflow Automation Tool for Time Series](https://mlsanity.com/paper/2106.10157/) (2021)
- [Incremental Permutation Feature Importance (iPFI): Towards Online Explanations on Data Streams](https://mlsanity.com/paper/2209.01939/) (2022)
- [A Multi-Stage Automated Online Network Data Stream Analytics Framework for IIoT Systems](https://mlsanity.com/paper/2210.01985/) (2022)
- [Early Concept Drift Detection via Prediction Uncertainty](https://mlsanity.com/paper/2412.11158/) (2024)
- [One or Two Things We know about Concept Drift -- A Survey on Monitoring Evolving Environments](https://mlsanity.com/paper/2310.15826/) (2023)
- [AdaptEvolve: Improving Efficiency of Evolutionary AI Agents through Adaptive Model Selection](https://mlsanity.com/paper/2602.11931/) (2026)
- [MRCpy: A Library for Minimax Risk Classifiers](https://mlsanity.com/paper/2108.01952/) (2021)
- [RoME: A Robust Mixed-Effects Bandit Algorithm for Optimizing Mobile Health Interventions](https://mlsanity.com/paper/2312.06403/) (2023)
- [Enabling AutoML for Zero-Touch Network Security: Use-Case Driven Analysis](https://mlsanity.com/paper/2502.21286/) (2025)
- [Online hierarchical partitioning of the output space in extreme multi-label data stream](https://mlsanity.com/paper/2507.20894/) (2025)
- [Standardized Evaluation of Machine Learning Methods for Evolving Data Streams](https://mlsanity.com/paper/2204.13625/) (2022)
- [A Survey on Uncertainty Toolkits for Deep Learning](https://mlsanity.com/paper/2205.01040/) (2022)
- [TinyReptile: TinyML with Federated Meta-Learning](https://mlsanity.com/paper/2304.05201/) (2023)
- [Calibrated Probabilistic Forecasts for Arbitrary Sequences](https://mlsanity.com/paper/2409.19157/) (2024)
- [Online Agnostic Multiclass Boosting](https://mlsanity.com/paper/2205.15113/) (2022)
- [iSAGE: An Incremental Version of SAGE for Online Explanation on Data Streams](https://mlsanity.com/paper/2303.01181/) (2023)
- [OEBench: Investigating Open Environment Challenges in Real-World Relational Data Streams](https://mlsanity.com/paper/2308.15059/) (2023)
- [Adaptive Active Inference Agents for Heterogeneous and Lifelong Federated Learning](https://mlsanity.com/paper/2410.09099/) (2024)
- [Hoeffding adaptive trees for multi-label classification on data streams](https://mlsanity.com/paper/2410.20242/) (2024)
- [Identifying Predictions That Influence the Future: Detecting Performative Concept Drift in Data Streams](https://mlsanity.com/paper/2412.10545/) (2024)
- [MLHOps: Machine Learning for Healthcare Operations](https://mlsanity.com/paper/2305.02474/) (2023)

## Abstract (arXiv)

River is a machine learning library for dynamic data streams and continual learning. It provides multiple state-of-the-art learning methods, data generators/transformers, performance metrics and evaluators for different stream learning problems. It is the result from the merger of the two most popular packages for stream learning in Python: Creme and scikit-multiflow. River introduces a revamped architecture based on the lessons learnt from the seminal packages. River's ambition is to be the go-to library for doing machine learning on streaming data. Additionally, this open source package brings under the same umbrella a large community of practitioners and researchers. The source code is available at https://github.com/online-ml/river.
