River — это открытая Python библиотека для машинного обучения онлайн. Библиотека явялется результатом объединения двух библиотек: creme и scikit-multiflow. Задача River — обеспечить инфраструктуру для обучения моделей машинного обучения на потоковых данных.
Проблема обучения моделей на батчах данных
Модели машинного обучения часто обучаются на батчах данных. Таким образом, модель подгоняется под датасет за один раз. В итоге получается статичная модель, которую нужно каждый раз переобучать, чтобы она учитывала новые данные. Для ряда задач такой подход не является оптимальным. При использовании батч-моделей для потоковых данных необходимо отдельно продумывать поддержание обучающей выборки, мониторинг перформанса модели в реальном времени и переобучение.
Подробнее про River
River использует другой подход, когда модель последовательно выучивается на потоке данных. Это значит, что в каждый момент времени модель видит только одно наблюдение. Такой подход позволяет обновлять модель новыми данными налету.
Функционал модели включает в себя:
- Линейные модели с набором алгоритмов оптимизации
- Ближайшие соседи, решающие деревья и наивный Байес
- Прогрессивная валидация модели (Progressive model validation)
- Возможность строить пайплайны обучения
- Детектирование аномалий
- Рекомендательные системы
- Предсказание временных рядом
- Обучение на несбалансированных данных
- Кластеризация
- Извлечение и отбор признаков
- Встроенные датасеты