1
$\begingroup$

I want to perform drift detection on data with multiple input values (x0, x1, x2, x3). I'm using an adaptive window algorithm found from sci-kit found here.

Doing this

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

Results in ValueError: setting an array element with a sequence.

But doing this

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

works just fine.

Any idea how to do the first thing?

My current solution is to just use 4 different drift detectors, but I would like to use one.

| improve this question | | | | |
$\endgroup$
1
$\begingroup$

This is not currently implemented. So while you can add any number as a concept value, you're probably best served by adding 1s and 0s depending on whether a not misspecification occurred.

The reason it is not implemented is probably that ADWIN essentially performs a statistical test (or a heuristic approximation) whether the mean of two (large enough) windows is significantly different. And comparison of multivariate mean vectors is very tricky, in particular if one cannot make any assumptions about normality etc.

Otherwise, your workaround of using 4 drift detectors seems like the best solution!

| improve this answer | | | | |
$\endgroup$
  • $\begingroup$ "... adding 1s and 0s depending on whether a not misspecification occurred" Could you explain what you mean by this and what you mean by "concept value"? $\endgroup$ – Joshua Swain Dec 11 '19 at 2:00
  • $\begingroup$ Often you want to track shifts in the error rate of your classification scheme or something similar. By adding 1s and 0s for (mis)classifications you can do just that. $\endgroup$ – oW_ Dec 11 '19 at 2:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.