用于机器学习问题中的漂移检测的 Python 库
项目描述
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
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
查看哈希)
内置分布
frouros-0.1.0-py3-none-any.whl
(79.8 kB
查看哈希)