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 的 wheel 包。这意味着你很可能无需从源码构建 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 提供了以下算法家族的在线实现:

  • 线性模型,带有丰富的优化器
  • 决策树与随机森林
  • (近似)最近邻
  • 异常检测
  • 漂移检测
  • 推荐系统
  • 时间序列预测
  • 多臂老虎机
  • 因子分解机
  • 不平衡学习
  • 聚类
  • Bagging/boosting/stacking
  • 主动学习

River 还提供了其他在线工具:

  • 特征提取与选择
  • 在线统计与度量
  • 预处理
  • 内置数据集
  • 渐进式模型验证
  • 模型管道

查看 API 以获取全面的概览。

🤔 我应该使用 River 吗?

你应该问问自己是否需要在线机器学习。答案很可能是否定的。大多数情况下,批量学习就能很好地完成任务。如果你符合以下情况,那么在线方法可能正合适:

  • 你想要一个能够从新数据中学习而无需重新查看历史数据的模型。
  • 你想要一个对 概念漂移 具有鲁棒性的模型。
  • 你想要以一种更贴近生产环境(通常是基于事件的)的方式来开发模型。

River 的一些特点包括:

  • 它更注重清晰性和用户体验,而非性能。
  • 它每次处理一个样本的速度非常快。试试看,你会明白的。
  • 它与 Python 生态系统的其他部分配合得很好。

🔗 实用链接

  • 文档
  • 软件包发布
  • awesome-online-machine-learning
  • 2022 年在 GAIA 上的演讲
  • 在线聚类:算法、评估、度量、应用与基准测试,来自 KDD'22。

👐 贡献

欢迎以任何方式贡献,我们始终对新想法和新方法持开放态度。

  • 如果你有任何问题或疑问,请发起讨论。公开提问比私下发邮件给我们更有用。也鼓励在贡献之前先发起讨论,这样大家意见一致,也能避免不必要的工作。
  • 如果你认为发现了 bug 或性能问题,欢迎提交 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 是根据 3-Clause BSD 许可证 发布的免费开源软件。

下载工具