EDDM#
- class capymoa.drift.detectors.EDDM[source]#
Bases:
MOADriftDetectorEarly Drift Detection Method (EDDM) Drift Detector
EDDM monitors the distance between two consecutive errors. A drop in the average distance between errors indicates drift.
EDDM complements DDM. DDM tracks the error rate. EDDM tracks how far apart errors are. The two often disagree: EDDM is more stable on noisy streams, DDM reacts faster when the error rate jumps.
The detector has no tuning parameters. MOA uses the fixed warning and drift thresholds from the original paper.
Example:#
>>> from capymoa.drift.detectors import EDDM >>> detector = EDDM() >>> >>> data_stream = [0] * 1000 + [1] * 1000 >>> >>> for i, x in enumerate(data_stream): ... detector.add_element(x) ... if detector.detected_change(): ... print('Change detected in data: ' + str(x) + ' - at index: ' + str(i)) Change detected in data: 1 - at index: 1030
Reference:#
Baena-García, M., del Campo-Ávila, J., Fidalgo, R., Bifet, A., Gavaldà, R., & Morales-Bueno, R. (2006). Early drift detection method. Fourth International Workshop on Knowledge Discovery from Data Streams, 6, 77-86.
- __init__()[source]#
Create an EDDM drift detector.
EDDM has no hyper-parameters. MOA uses the thresholds from the original paper.
- 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.
- 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.
- classmethod from_params( ) Any[source]#
Construct an instance from parameters produced by
get_params.
- reset(clean_history: bool = False) None[source]#
Reset the drift detector.
- Parameters:
clean_history – Whether to reset detection history, defaults to False
- REQUIRES_FIT: bool = False#
If
True, this detector needs a reference distribution before it can detect change. Concept drift detectors leave this asFalseand only useadd_element().