River is a Python library for online machine learning that processes streaming data incrementally without storing the entire dataset in memory.
The library addresses the challenge of learning from continuous data streams where the underlying patterns may shift over time, a problem known as concept drift. Rather than training on fixed batches of historical data, River processes one observation at a time, updating its models incrementally. This approach enables real-time predictions and adaptation to changing data distributions, making it suitable for applications where data arrives continuously and storage of all observations is impractical or impossible.
River is designed for practitioners building systems that must learn and predict from streaming data in production environments. It works well for time-series forecasting, anomaly detection, and other scenarios where data characteristics evolve. The library provides implementations of online versions of common machine learning algorithms, allowing developers to apply familiar techniques to streaming contexts. Teams should consider River when they need to process unbounded data streams with minimal memory overhead and cannot afford to retrain models on complete historical datasets.
The project maintains steady development activity with regular updates to its codebase and consistent engagement with issues and pull requests. Documentation is actively maintained alongside the code, ensuring that examples and guides remain current. The maintainers respond to community contributions and bug reports, indicating ongoing stewardship of the project's direction and quality.