River是一个用于在线机器学习的Python库。它旨在成为对流数据进行机器学习的最用户友好的库。River是crème和scikit-multiflow合并的结果。
https://github.com/online-ml/river
举个简单示例,将训练逻辑回归来对网站网络钓鱼数据集进行分类。下面介绍了数据集中的第一个观测值。
python
>>> 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
现在,让我们以流式处理方式在数据集上运行模型。我们按顺序交错预测和模型更新。同时,我们更新性能指标以查看模型的表现如何。
python
>>> 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 = metric.update(y, y_pred) # update the metric
... model = model.learn_one(x, y) # make the model learn
>>> metric
Accuracy: 89.28%
当然,这只是一个人为的例子。我们欢迎您查看文档的介绍部分以获取更全面的教程。
🛠 安装
River 旨在与 Python 3.8 及更高版本配合使用。安装可以通过以下方式完成:pip
pip install river
有可用于Linux,MacOS和Windows的轮子,这意味着您很可能不必从源代码构建River。
您可以从 GitHub 安装最新的开发版本,如下所示:
pip install git+https://github.com/online-ml/river --upgrade
或者,通过 SSH:
pip install git+ssh://git@github.com/online-ml/river.git --upgrade
River 提供了以下算法系列的在线实现
线性模型,具有各种优化器
决策树和随机森林
(近似)最近邻
异常检测
漂移检测
推荐系统
时间序列预测
强盗
因子分解机
不平衡的学习
聚类
装袋/升压/堆垛
主动学习
River还提供其他在线实用程序
特征提取和选择
在线统计和指标
预处理
内置数据集
渐进式模型验证
对管道进行建模
查看 API 以获得全面的概述
很棒的在线机器学习
https://github.com/online-ml/awesome-online-machine-learning
https://parameterfree.com/lecture-notes-on-online-learning/
https://www.zhihu.com/question/465062970/answer/3148474389?utm_id=0
https://scikit-multiflow.readthedocs.io/en/stable/installation.html
Online learning的综述文章:https://arxiv.org/abs/1912.13213