Skip to content

NoDrift

Dummy class used to turn off concept drift detection capabilities of adaptive models. It always signals that no concept drift was detected. Examples --------

from river import drift >>> from river import evaluate >>> from river import forest >>> from river import metrics >>> from river.datasets import synth

dataset = datasets.synth.ConceptDriftStream( ... seed=8, ... position=500, ... width=40, ... ).take(700)

We can turn off the warning detection capabilities of Adaptive Random Forest (ARF) or other similar models. Thus, the base models will reset immediately after identifying a drift, bypassing the background model building phase:

adaptive_model = forest.ARFClassifier( ... leaf_prediction="mc", ... warning_detector=drift.NoDrift(), ... seed=8 ... )

We can also turn off the concept drift handling capabilities completely:

stationary_model = forest.ARFClassifier( ... leaf_prediction="mc", ... warning_detector=drift.NoDrift(), ... drift_detector=drift.NoDrift(), ... seed=8 ... )

Let's put that to test:

for x, y in dataset: ... adaptive_model = adaptive_model.learn_one(x, y) ... stationary_model = stationary_model.learn_one(x, y)

The adaptive model:

adaptive_model.n_drifts_detected() 2

adaptive_model.n_warnings_detected() 0

The stationary one:

stationary_model.n_drifts_detected() 0

stationary_model.n_warnings_detected() 0

Attributes

  • drift_detected

    Whether or not a drift is detected following the last update.

Methods

update

Update the detector with a single data point.

Parameters

  • x'int | float'

Returns

DriftDetector: self