River
Python library for machine learning on streaming data. Train models incrementally on Linux, macOS or Windows with open-source BSD-3-Clause licensing.

River is a Python library for models that learn from incoming data one observation at a time. It's for developers and data scientists working with event streams, changing data patterns, or applications that need to update models without revisiting past training data. It runs in your own Python environment on Linux, macOS and Windows, and is open source under the BSD-3-Clause license.
Its online approach lets a model make a prediction, then learn from the next observation. That fits work where data arrives continuously and the patterns a model learned can change over time, a problem known as concept drift. River includes drift detection alongside classification, regression, clustering and anomaly detection.
The algorithm choices include linear models, decision trees, random forests and approximate nearest neighbors. It also covers recommender systems, time series forecasting, bandits and learning from imbalanced data. Ensemble methods and active learning support more specialized modeling needs.
River includes preprocessing, feature extraction and selection, plus pipelines that combine these steps with a model. Online statistics and metrics help track a stream as it arrives; progressive validation evaluates predictions throughout learning rather than only after training. Built-in datasets provide material for trying these approaches.
The project grew from the merger of creme and scikit-multiflow. Its design prioritizes clarity and ease of use over maximum performance, with a focus on processing individual observations and working within the Python ecosystem.