Skip to main content

用于机器学习问题中的漂移检测的 Python 库

项目描述

词 覆盖范围 文件 bsd_3_license

Frouros 是一个 Python 库,用于机器学习问题中的漂移检测。

它提供了一套用于漂移检测的算法,包括有监督和无监督部分,以及一些半监督算法。它的设计目的是与scikit-learn库轻松集成。这种集成允许 Frouros 在机器学习问题管道中使用,在新漂移检测算法的实现中使用,并可用于比较检测器之间的性能,作为基准。

快速开始

作为一个快速简单的示例,我们可以生成两个二元正态分布,以便使用像 MMD(最大均值差异)这样的无监督方法。此方法尝试验证生成的样本是否来自同一分布。如果它们来自不同的分布,则意味着存在协变量漂移。

from sklearn.gaussian_process.kernels import RBF
import numpy as np
from frouros.unsupervised.distance_based import MMD

np.random.seed(31)
# X samples from a normal distribution with mean = [1. 1.] and cov = [[2. 0.][0. 2.]]
x_mean = np.ones(2)
x_cov = 2*np.eye(2)
# Y samples a normal distribution with mean = [0. 0.] and cov = [[2. 1.][1. 2.]]
y_mean = np.zeros(2)
y_cov = np.eye(2) + 1

num_samples = 200
X_ref = np.random.multivariate_normal(x_mean, x_cov, num_samples)
X_test = np.random.multivariate_normal(y_mean, y_cov, num_samples)

alpha = 0.01  # significance level for the hypothesis test

detector = MMD(num_permutations=1000, kernel=RBF(length_scale=1.0), random_state=31)
detector.fit(X=X_ref)
detector.transform(X=X_test)
mmd, p_value = detector.distance

p_value < alpha
>>> True  # Drift detected. We can reject H0, so both samples come from different distributions.

更多高级示例可以在这里找到。

安装

Frouros 支持 Python 3.8、3.9 和 3.10 版本。它可以通过 pip 安装:

pip install frouros

还可以选择在skorch的帮助下使用PyTorch模型:

pip install frouros[pytorch]

漂移检测方法

当前支持的方法如下表所示。根据它们能够检测到的漂移类型以及检测方式,它们分为三个主要类别。

类型 亚型 方法
监督
基于 CUSUM
中和
几何移动平均线
佩奇·欣克利
基于 DDM
DDM
ECDD-WT
EDDM
HDDM-A
HDDM-W
RDDM
阶梯式
基于窗口
阿德温
KSWIN
半监督
基于边距密度
MD3-SVM
MD3-RS
无监督
基于距离
EMD
直方图交点
JS
吉隆坡
赞比亚
PSI
统计检验
卡方
CVM
KS
韦尔奇的 T 检验

数据集

下表提供并列出了一些著名的数据集和合成生成器。

类型 数据集
真实的
电2
合成的

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

frouros-0.1.0.tar.gz (49.6 kB 查看哈希

已上传 source

内置分布

frouros-0.1.0-py3-none-any.whl (79.8 kB 查看哈希

已上传 py3