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