Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
river — Библиотека потокового машинного обучения для инкрементального обучения на потоках данных, предоставляющая онлайн-оценщики, обнаружение дрейфа и аномалий, конвейеры, метрики и встроенные наборы данных для Python. | Kitploit
Инструменты/GitHubGitHub/online-ml/river
Утилиты и фреймворкиМашинное ОбучениеОбнаружение Аномалий
GitHubonline-ml/river

river

Библиотека потокового машинного обучения для инкрементального обучения на потоках данных, предоставляющая онлайн-оценщики, обнаружение дрейфа и аномалий, конвейеры, метрики и встроенные наборы данных для Python.

РепозиторийСайт
5.9k6572 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

river_logo

code-quality documentation pypi pepy mypy bsd_3_license discord


River — это библиотека Python для онлайн-машинного обучения. Она стремится быть максимально удобной для пользователя библиотекой для машинного обучения на потоковых данных. River — результат слияния creme и scikit-multiflow.

⚡️ Быстрый старт

В качестве краткого примера мы обучим логистическую регрессию для классификации набора данных о фишинговых сайтах. Вот как выглядит первое наблюдение в наборе данных.

root@kitploit:~
>>> from pprint import pprint
>>> from river import datasets

>>> dataset = datasets.Phishing()

>>> for x, y in dataset:
...     pprint(x)
...     print(y)
...     break
{'age_of_domain': 1,
 'anchor_from_other_domain': 0.0,
 'empty_server_form_handler': 0.0,
 'https': 0.0,
 'ip_in_url': 1,
 'is_popular': 0.5,
 'long_url': 1.0,
 'popup_window': 0.0,
 'request_from_other_domain': 0.0}
True

Теперь запустим модель на наборе данных в потоковом режиме. Мы последовательно чередуем прогнозы и обновления модели. Параллельно мы обновляем метрику качества, чтобы видеть, насколько хорошо работает модель.

root@kitploit:~
>>> from river import compose
>>> from river import linear_model
>>> from river import metrics
>>> from river import preprocessing

>>> model = compose.Pipeline(
...     preprocessing.StandardScaler(),
...     linear_model.LogisticRegression()
... )

>>> metric = metrics.Accuracy()

>>> for x, y in dataset:
...     y_pred = model.predict_one(x)      # make a prediction
...     metric.update(y, y_pred)           # update the metric
...     model.learn_one(x, y)              # make the model learn

>>> metric
Accuracy: 89.28%

Конечно, это всего лишь искусственный пример. Приглашаем вас ознакомиться с разделом Введение в документации, где представлен более подробный учебник.

🛠 Установка

River предназначен для работы с Python 3.11 и выше. Установку можно выполнить с помощью pip:

root@kitploit:~
pip install river

Для Linux, MacOS и Windows доступны готовые колеса (wheels). Это означает, что вам, скорее всего, не придётся собирать River из исходников.

Основной онлайн-интерфейс River (learn_one / predict_one) не требует pandas. Мини-пакетный интерфейс (learn_many, predict_many, predict_proba_many, transform_many) построен на pandas и подключается по желанию:

root@kitploit:~
pip install "river[pandas]"

Последнюю разрабатываемую версию можно установить из GitHub следующим образом:

root@kitploit:~
pip install git+https://github.com/online-ml/river --upgrade
pip install git+ssh://[email protected]/online-ml/river.git --upgrade  # using SSH

Этот метод требует наличия Cython и Rust, установленных на вашем компьютере.

🔮 Возможности

River предоставляет онлайн-реализации следующих семейств алгоритмов:

  • Линейные модели с широким набором оптимизаторов
  • Деревья решений и случайные леса
  • (Приближённые) методы ближайших соседей
  • Обнаружение аномалий
  • Обнаружение дрейфа концепций
  • Рекомендательные системы
  • Прогнозирование временных рядов
  • Бандиты
  • Факторизационные машины
  • Обучение на несбалансированных данных
  • Кластеризация
  • Бэггинг/бустинг/стекинг
  • Активное обучение

River также предоставляет другие онлайн-инструменты:

  • Извлечение и отбор признаков
  • Онлайн-статистика и метрики
  • Предобработка данных
  • Встроенные наборы данных
  • Прогрессивная валидация моделей
  • Конвейеры моделей

Ознакомьтесь с API для получения полного обзора

🤔 Стоит ли использовать River?

Стоит задать себе вопрос, нужно ли вам онлайн-машинное обучение. Ответ, скорее всего, нет. В большинстве случаев пакетное обучение вполне справляется с задачей. Онлайн-подход может подойти, если:

  • Вам нужна модель, которая может обучаться на новых данных без необходимости повторно обращаться к прошлым данным.
  • Вам нужна модель, устойчивая к дрейфу концепций.
  • Вы хотите разрабатывать модель в условиях, более близких к продакшену, который обычно является событийно-ориентированным.

Некоторые особенности River заключаются в следующем:

  • Он делает акцент на ясности и удобстве для пользователя, а не на производительности.
  • Он очень быстро обрабатывает по одному образцу за раз. Попробуйте — увидите.
  • Он хорошо взаимодействует с остальной экосистемой Python.

🔗 Полезные ссылки

  • Документация
  • Релизы пакета
  • awesome-online-machine-learning
  • Презентация 2022 года на GAIA
  • Онлайн-кластеризация: алгоритмы, оценка, метрики, приложения и бенчмаркинг на KDD'22.

👐 Участие в разработке

Не стесняйтесь вносить вклад любым удобным для вас способом, мы всегда открыты для новых идей и подходов.

  • Откройте обсуждение, если у вас есть какой-либо вопрос или запрос. Задавать вопрос публично полезнее, чем отправлять нам личное письмо. Также рекомендуется открыть обсуждение перед началом работы над вкладом, чтобы все были на одной волне и избежать лишней работы.
  • Приглашаем открыть issue, если вы считаете, что обнаружили ошибку или проблему с производительностью.
  • Наша дорожная карта является публичной. Не стесняйтесь работать над тем, что вас заинтересовало, или вносить предложения.

Пожалуйста, ознакомьтесь с правилами участия, если вы хотите внести изменения в кодовую базу.

🤝 Партнёрства

affiliations

💬 Цитирование

Если River оказался полезен для вас, и вы хотите сослаться на него в научной публикации, пожалуйста, обратитесь к статье, опубликованной в JMLR:

root@kitploit:~
@article{montiel2021river,
  title={River: machine learning for streaming data in Python},
  author={Montiel, Jacob and Halford, Max and Mastelini, Saulo Martiello
          and Bolmier, Geoffrey and Sourty, Raphael and Vaysse, Robin and Zouitine, Adil
          and Gomes, Heitor Murilo and Read, Jesse and Abdessalem, Talel and others},
  year={2021}
}

📝 Лицензия

River — это бесплатное программное обеспечение с открытым исходным кодом, распространяемое по лицензии BSD с тремя положениями (3-clause BSD).

Скачать инструмент