RDDM#

class capymoa.drift.detectors.RDDM[source]#

Bases: MOADriftDetector

Reactive Drift Detection Method Drift Detector

Example:#

>>> import numpy as np
>>> from capymoa.drift.detectors import RDDM
>>> np.random.seed(0)
>>>
>>> detector = RDDM()
>>>
>>> data_stream = np.random.randint(2, size=2000)
>>> for i in range(999, 2000):
...     data_stream[i] = np.random.randint(4, high=8)
>>>
>>> for i in range(2000):
...     detector.add_element(data_stream[i])
...     if detector.detected_change():
...         print('Change detected in data: ' + str(data_stream[i]) + ' - at index: ' + str(i))
Change detected in data: 6 - at index: 1003

Reference:#

Barros, R. S., Cabral, D. R., Gonçalves Jr, P. M., & Santos, S. G. (2017). RDDM: Reactive drift detection method. Expert Systems with Applications, 90, 344-355.

__init__(
min_n_instances: int = 129,
warning_level: float = 1.773,
drift_level: float = 2.258,
max_size_concept: int = 40000,
min_size_concept: int = 7000,
warning_limit: int = 1400,
)[source]#

Create an RDDM drift detector.

Parameters:
  • min_n_instances – Minimum number of instances before the detector starts monitoring for drift. Defaults to 129.

  • warning_level – Multiplier applied to the minimum error estimate for entering the warning zone. Defaults to 1.773.

  • drift_level – Multiplier applied to the minimum error estimate for declaring drift. Defaults to 2.258.

  • max_size_concept – Maximum number of instances allowed in a stable concept before forcing an RDDM reset when no warning is active. Defaults to 40000.

  • min_size_concept – Size of the internal prediction buffer and the minimum stable concept length retained for recovery after warnings. Defaults to 7000.

  • warning_limit – Number of consecutive warning instances allowed before warning is promoted to drift. Defaults to 1400.

add_element(element: float) None[source]#

Update the drift detector with a new input value.

Parameters:

element – A value to update the drift detector with. Usually, this is the prediction error of a model.

cli_help() str[source]#
detected_change() bool[source]#

Is the detector currently detecting a concept drift?

detected_warning() bool[source]#

Is the detector currently warning of an upcoming concept drift?

classmethod from_cli(cli: str) MOADriftDetector[source]#

Create a detector instance configured from a MOA CLI string.

Parameters:

cli – Command-line style options string for MOA detector hyper-parameters.

Returns:

A new detector instance initialized with cli.

get_params() Dict[str, Any][source]#

Get the hyper-parameters of the drift detector.

reset(clean_history: bool = False) None[source]#

Reset the drift detector.

Parameters:

clean_history – Whether to reset detection history, defaults to False