如何在多列中使用 ADWIN

数据挖掘 scikit-学习
2022-02-14 15:49:04

我想对具有多个输入值(x0、x1、x2、x3)的数据执行漂移检测。我正在使用从此处sci-kit找到的自适应窗口算法

这样做

from skmultiflow.drift_detection.adwin import ADWIN
adwin = ADWIN()
adwin.add_element(np.array([1, 2, 3, 4]))

结果是ValueError: setting an array element with a sequence.

但是这样做

from skmultiflow.drift_detection.adwin import ADWIN
adwin = ADWIN()
adwin.add_element(np.array([1])

工作得很好。

知道如何做第一件事吗?

我目前的解决方案是只使用 4 个不同的漂移探测器,但我想使用一个。

1个回答

目前尚未实施。因此,虽然您可以添加任何数字作为概念值,但最好根据是否发生指定错误来添加 1 和 0。

未实施的原因可能是 ADWIN 本质上执行了一个统计测试(或启发式近似),两个(足够大)窗口的平均值是否显着不同。并且多元平均向量的比较非常棘手,特别是如果不能对正态性等做出任何假设。

否则,您使用 4 个漂移探测器的解决方法似乎是最好的解决方案!