River — open-source библиотека Python для обучения нейросетей в непрерывном режиме, включающая методы преобразования данных, а также алгоритмы обучения и оптимизации. River подходит для развертывания моделей, обучающихся на потоковых данных.
Добавление новых данных для обучения обычных алгоритмов машинного обучения, таких как линейная регрессия и xgboost, требует переобучения с нуля как на старых, так и на новых данных. Во многих случаях это невозможно: например, для хранения полного датасета может не хватать памяти или модель может слишком медленно переучиваться. При обучении в непрерывном режиме данные передаются в модель последовательно. Непрерывное обучение подходит для таких приложений, как обучение моделей на больших датасетах, фильтрация спама, рекомендательные системы и интернет вещей.
River — результат объединения наиболее используемых функций библиотек creme и scikit-multiflow. Библиотека содержит множество алгоритмов непрерывного обучения для задач регрессии, классификации и кластеризации, включая наивный байесовский классификатор, древовидные ансамбли, факторизационные машины, линейные модели и другие. Также River включает алгоритмы обнаружения дрейфа, методы обработки несбалансированных наборов данных и обнаружения аномалий. Для задач непрерывного обучения River оказывается на порядок быстрее PyTorch, Tensorflow и scikit-learn.