diff --git a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based.rst b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based.rst index 7b3936d64..761110b3c 100644 --- a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based.rst +++ b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based.rst @@ -3,7 +3,7 @@ Instance-based drifts and detectors =================================== -.. image:: 10_instance_based/images/MLPro-OA-Drift-Detectors-IB_class_diagram.drawio.png +.. image:: 10_instance_based/images/MLPro-OA-IB-Drift-Detectors_class_diagram.drawio.png :scale: 50% @@ -19,7 +19,7 @@ Instance-based drifts and detectors :undoc-members: :private-members: :show-inheritance: - + .. toctree:: :maxdepth: 2 diff --git a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/10_common_drifts.rst b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/10_common_drifts.rst index 52acb232f..6017d6fd0 100644 --- a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/10_common_drifts.rst +++ b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/10_common_drifts.rst @@ -1,9 +1,10 @@ -.. _target_api_oa_stream_tasks_ad_common_drifts: +.. _target_api_oa_stream_tasks_ib_dd_common_drifts: Common drifts ============= - -.. automodule:: mlpro.oa.streams.tasks.driftdetectors.drifts.instancebased.basics + +.. automodule:: mlpro.oa.streams.tasks.driftdetectors.drifts.instancebased.movement :members: :undoc-members: :private-members: :show-inheritance: + diff --git a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/20_common_algorithms.rst b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/20_common_algorithms.rst deleted file mode 100644 index 436df8fd4..000000000 --- a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/20_common_algorithms.rst +++ /dev/null @@ -1,4 +0,0 @@ -.. _target_api_oa_stream_tasks_ad_common_algorithms: -Common algorithms -================= - diff --git a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/40_drift_detectors.rst b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/40_drift_detectors.rst deleted file mode 100644 index 227bbaec4..000000000 --- a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/40_drift_detectors.rst +++ /dev/null @@ -1,36 +0,0 @@ -.. _target_api_oa_stream_tasks_dd: -Drift detectors -=============== - -.. image:: drift_detectors/images/MLPro-OA-Drift-Detectors_class_diagram.drawio.png - :scale: 50% - - -Template for drift detectors ----------------------------- - -.. automodule:: mlpro.oa.streams.tasks.driftdetectors.basics - :members: - :undoc-members: - :private-members: - :show-inheritance: - - -Template for drift events -------------------------- - -.. automodule:: mlpro.oa.streams.tasks.driftdetectors.drift.basics - :members: - :undoc-members: - :private-members: - :show-inheritance: - - -Concrete drift events and algorithms ------------------------------------- - -.. toctree:: - :maxdepth: 2 - :glob: - - drift_detectors/* diff --git a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/images/MLPro-OA-CB-Drift-Detectors_class_diagram.drawio b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/images/MLPro-OA-CB-Drift-Detectors_class_diagram.drawio deleted file mode 100644 index 9249c1e80..000000000 --- a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/images/MLPro-OA-CB-Drift-Detectors_class_diagram.drawio +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/images/MLPro-OA-IB-Drift-Detectors_class_diagram.drawio b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/images/MLPro-OA-IB-Drift-Detectors_class_diagram.drawio new file mode 100644 index 000000000..8f9ded7f3 --- /dev/null +++ b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/images/MLPro-OA-IB-Drift-Detectors_class_diagram.drawio @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/images/MLPro-OA-IB-Drift-Detectors_class_diagram.drawio.png b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/images/MLPro-OA-IB-Drift-Detectors_class_diagram.drawio.png new file mode 100644 index 000000000..204c95241 Binary files /dev/null and b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/10_instance_based/images/MLPro-OA-IB-Drift-Detectors_class_diagram.drawio.png differ diff --git a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based.rst b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based.rst.off similarity index 83% rename from doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based.rst rename to doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based.rst.off index a09ae88b9..c9269c098 100644 --- a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based.rst +++ b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based.rst.off @@ -1,9 +1,9 @@ .. _target_api_oa_stream_tasks_dd_cb: Cluster-based drifts and detectors -=================================== +================================== -.. image:: 20_cluster_based/images/MLPro-OA-Drift-Detectors-CB_class_diagram.drawio.png +.. image:: 20_cluster_based/images/MLPro-OA-CB-Drift-Detectors_class_diagram.drawio.png :scale: 50% diff --git a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based/30_cluster_based.rst b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based/30_cluster_based.rst deleted file mode 100644 index 30d1b7a43..000000000 --- a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based/30_cluster_based.rst +++ /dev/null @@ -1,14 +0,0 @@ -.. _target_api_oa_stream_tasks_ad_cb: -Cluster-based drifts and detectors -===================================== - - -.. image:: cluster_based/images/MLPro-OA-CB-Drift-Detectors_class_diagram.drawio.png - :scale: 50% - - -.. toctree:: - :maxdepth: 2 - :glob: - - cluster_based/* \ No newline at end of file diff --git a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based/images/.$MLPro-OA-CB-Drift-Detectors_class_diagram.drawio.bkp b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based/images/.$MLPro-OA-CB-Drift-Detectors_class_diagram.drawio.bkp index 3e94fcfa5..dced91ced 100644 --- a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based/images/.$MLPro-OA-CB-Drift-Detectors_class_diagram.drawio.bkp +++ b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based/images/.$MLPro-OA-CB-Drift-Detectors_class_diagram.drawio.bkp @@ -1,11 +1,11 @@ - + - + - + @@ -54,94 +54,96 @@ - - + + - + - + - - - - - - - - + + - + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + - - + + - - - - - + + + + + + + - - + + + + - - + + - - + + + + + + + - - + + + + - - + + - - - - - - - - diff --git a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based/images/MLPro-OA-CB-Drift-Detectors_class_diagram.drawio b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based/images/MLPro-OA-CB-Drift-Detectors_class_diagram.drawio index 9249c1e80..dced91ced 100644 --- a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based/images/MLPro-OA-CB-Drift-Detectors_class_diagram.drawio +++ b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based/images/MLPro-OA-CB-Drift-Detectors_class_diagram.drawio @@ -1,6 +1,6 @@ - + - + @@ -74,155 +74,75 @@ - - + + - + - + - + - - - - + - - - - - - - - - - + - - + + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - + + + + - - + + - - + + + + + + + - - + + - - + + - - - - - - - - - - - diff --git a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based/images/MLPro-OA-CB-Drift-Detectors_class_diagram.drawio.png b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based/images/MLPro-OA-CB-Drift-Detectors_class_diagram.drawio.png new file mode 100644 index 000000000..b9dc687e3 Binary files /dev/null and b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/20_cluster_based/images/MLPro-OA-CB-Drift-Detectors_class_diagram.drawio.png differ diff --git a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/images/.$MLPro-OA-Drift-Detectors_class_diagram.drawio.bkp b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/images/.$MLPro-OA-Drift-Detectors_class_diagram.drawio.bkp new file mode 100644 index 000000000..2f0a97ac1 --- /dev/null +++ b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/images/.$MLPro-OA-Drift-Detectors_class_diagram.drawio.bkp @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/images/MLPro-OA-Drift-Detectors_class_diagram.drawio b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/images/MLPro-OA-Drift-Detectors_class_diagram.drawio index 08c9efd0d..2f0a97ac1 100644 --- a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/images/MLPro-OA-Drift-Detectors_class_diagram.drawio +++ b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/images/MLPro-OA-Drift-Detectors_class_diagram.drawio @@ -1,6 +1,6 @@ - + @@ -104,37 +104,34 @@ - + - + - - - - + - + - + - + - + - + - + diff --git a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/images/MLPro-OA-Drift-Detectors_class_diagram.drawio.png b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/images/MLPro-OA-Drift-Detectors_class_diagram.drawio.png index eff45b727..fc0a38318 100644 Binary files a/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/images/MLPro-OA-Drift-Detectors_class_diagram.drawio.png and b/doc/rtd/content/99_appendices/appendix2/sub/mlpro_oa/streams/40_drift_detection/images/MLPro-OA-Drift-Detectors_class_diagram.drawio.png differ diff --git a/src/mlpro/oa/streams/tasks/driftdetectors/clusterbased/basics.py b/src/mlpro/oa/streams/tasks/driftdetectors/clusterbased/basics.py index 6f0dc275b..0e5e06366 100644 --- a/src/mlpro/oa/streams/tasks/driftdetectors/clusterbased/basics.py +++ b/src/mlpro/oa/streams/tasks/driftdetectors/clusterbased/basics.py @@ -11,7 +11,7 @@ """ Ver. 0.1.0 (2025-02-12) -This module provides template for cluster-based drift detection algorithms to be used in the context of online adaptivity. +This module provides a template for cluster-based drift detection algorithms to be used in the context of online adaptivity. """ from mlpro.bf.various import Log diff --git a/src/mlpro/oa/streams/tasks/driftdetectors/drifts/basics.py b/src/mlpro/oa/streams/tasks/driftdetectors/drifts/basics.py index 7b068a888..a07f3536f 100644 --- a/src/mlpro/oa/streams/tasks/driftdetectors/drifts/basics.py +++ b/src/mlpro/oa/streams/tasks/driftdetectors/drifts/basics.py @@ -54,7 +54,6 @@ class Drift (Id, Event, Plottable, Renormalizable): class name and one of the postfixes '(ON)', '(OFF)' depending on the drift status. """ - C_TYPE = 'Drift' C_PLOT_STANDALONE = False ## ------------------------------------------------------------------------------------------------- diff --git a/src/mlpro/oa/streams/tasks/driftdetectors/drifts/clusterbased/basics.py b/src/mlpro/oa/streams/tasks/driftdetectors/drifts/clusterbased/basics.py index 2b79382a2..e960da98a 100644 --- a/src/mlpro/oa/streams/tasks/driftdetectors/drifts/clusterbased/basics.py +++ b/src/mlpro/oa/streams/tasks/driftdetectors/drifts/clusterbased/basics.py @@ -5,11 +5,12 @@ ## ------------------------------------------------------------------------------------------------- ## -- History : ## -- yyyy-mm-dd Ver. Auth. Description -## -- 2025-02-12 1.0.0 DA Creation +## -- 2025-02-12 0.1.0 DA Creation +## -- 2025-03-04 0.2.0 DA Simplification ## ------------------------------------------------------------------------------------------------- """ -Ver. 0.1.0 (2025-02-12) +Ver. 0.2.0 (2025-03-04) This module provides a template class for cluster-based drifts to be used in cluster-based drift detection algorithms. @@ -72,43 +73,17 @@ def __init__(self, p_raising_object = p_raising_object, **p_kwargs ) - self._clusters : dict[Cluster] = p_clusters - self._properties : dict = p_properties + self.clusters : dict[Cluster] = p_clusters + self.properties : dict = p_properties -## ------------------------------------------------------------------------------------------------- - def get_clusters(self) -> dict[Cluster]: - """ - Method that returns the clusters associated with the drift. - - Returns - ------- - dict[Cluster] - Dictionary of clusters. - """ - return self._clusters - - -## ------------------------------------------------------------------------------------------------- - def get_properties(self) -> dict: - """ - Method that returns the properties of clusters associated with the drift. - - Returns - ------- - dict - Dictionary of properties. - """ - return self._properties - - ## ------------------------------------------------------------------------------------------------- def _init_plot_2d(self, p_figure: Figure, p_settings: PlotSettings): super()._init_plot_2d(p_figure=p_figure, p_settings=p_settings) cluster : Cluster = None - for cluster in self._clusters.values(): + for cluster in self.clusters.values(): if self.drift_status: cluster.color = "red" else: @@ -121,7 +96,7 @@ def _init_plot_3d(self, p_figure: Figure, p_settings: PlotSettings): cluster : Cluster = None - for cluster in self._clusters.values(): + for cluster in self.clusters.values(): if self.drift_status: cluster.color = "red" else: diff --git a/src/mlpro/oa/streams/tasks/driftdetectors/drifts/instancebased/basics.py b/src/mlpro/oa/streams/tasks/driftdetectors/drifts/instancebased/basics.py new file mode 100644 index 000000000..d8d0b901d --- /dev/null +++ b/src/mlpro/oa/streams/tasks/driftdetectors/drifts/instancebased/basics.py @@ -0,0 +1,73 @@ +## ------------------------------------------------------------------------------------------------- +## -- Project : MLPro - The integrative middleware framework for standardized machine learning +## -- Package : mlpro.oa.tasks.driftdetectors.drifts.instancebased +## -- Module : basics.py +## ------------------------------------------------------------------------------------------------- +## -- History : +## -- yyyy-mm-dd Ver. Auth. Description +## -- 2025-03-04 0.1.0 DA Creation +## ------------------------------------------------------------------------------------------------- + +""" +Ver. 0.1.0 (2025-03-04) + +This module provides a template class for instance-based drifts to be used in instance-based drift +detection algorithms. +""" + +from datetime import datetime + +try: + from matplotlib.figure import Figure +except: + class Figure : pass + +from mlpro.bf.mt import PlotSettings + +from mlpro.bf.streams import Instance +from mlpro.oa.streams.tasks.driftdetectors.drifts.basics import Drift + + + +## ------------------------------------------------------------------------------------------------- +## ------------------------------------------------------------------------------------------------- +class DriftIB (Drift): + """ + Sub-type for instance-based drift events. + + Parameters + ---------- + p_id : int + Drift ID. Default value = 0. + p_tstamp : datetime + Time stamp of drift detection. Default = None. + p_visualize : bool + Boolean switch for visualisation. Default = False. + p_raising_object : object + Reference of the object raised. Default = None. + p_clusters : dict[Cluster] + Clusters associated with the anomaly. Default = None. + p_properties : dict + Poperties of clusters associated with the anomaly. Default = None. + **p_kwargs + Further optional keyword arguments. + """ + +## ------------------------------------------------------------------------------------------------- + def __init__(self, + p_drift_status : bool, + p_instances : list[Instance], + p_id : int = 0, + p_tstamp : datetime = None, + p_visualize : bool = False, + p_raising_object : object = None, + **p_kwargs): + + super().__init__( p_drift_status = p_drift_status, + p_id = p_id, + p_tstamp = p_tstamp, + p_visualize = p_visualize, + p_raising_object = p_raising_object, + **p_kwargs ) + + self.instances : list[Instance] = p_instances \ No newline at end of file diff --git a/src/mlpro/oa/streams/tasks/driftdetectors/drifts/instancebased/movement.py b/src/mlpro/oa/streams/tasks/driftdetectors/drifts/instancebased/movement.py new file mode 100644 index 000000000..cf61fe111 --- /dev/null +++ b/src/mlpro/oa/streams/tasks/driftdetectors/drifts/instancebased/movement.py @@ -0,0 +1,29 @@ +## ------------------------------------------------------------------------------------------------- +## -- Project : MLPro - The integrative middleware framework for standardized machine learning +## -- Package : mlpro.oa.tasks.driftdetectors.drifts.instancebased +## -- Module : movement.py +## ------------------------------------------------------------------------------------------------- +## -- History : +## -- yyyy-mm-dd Ver. Auth. Description +## -- 2025-03-04 1.0.0 DA/DS Creation +## ------------------------------------------------------------------------------------------------- + +""" +Ver. 1.0.0 (2025-03-04) + +This module provides a sub-typ of class DriftIB related to data drift of type movement. +""" + +from mlpro.oa.streams.tasks.driftdetectors.drifts.instancebased.basics import DriftIB + + + + +## ------------------------------------------------------------------------------------------------- +## ------------------------------------------------------------------------------------------------- +class DriftIBMovement (DriftIB): + """ + Sub-type indicating the begin or end of a data drift of type movement. + """ + + pass diff --git a/src/mlpro/oa/streams/tasks/driftdetectors/instancebased/__init__.py b/src/mlpro/oa/streams/tasks/driftdetectors/instancebased/__init__.py index e69de29bb..8e650408e 100644 --- a/src/mlpro/oa/streams/tasks/driftdetectors/instancebased/__init__.py +++ b/src/mlpro/oa/streams/tasks/driftdetectors/instancebased/__init__.py @@ -0,0 +1 @@ +from mlpro.oa.streams.tasks.driftdetectors.instancebased.basics import DriftDetectorIB \ No newline at end of file diff --git a/src/mlpro/oa/streams/tasks/driftdetectors/instancebased/basics.py b/src/mlpro/oa/streams/tasks/driftdetectors/instancebased/basics.py new file mode 100644 index 000000000..17d063751 --- /dev/null +++ b/src/mlpro/oa/streams/tasks/driftdetectors/instancebased/basics.py @@ -0,0 +1,32 @@ +## -- ---------------------------------------------------------------------------------------------- +## -- Project : MLPro - The integrative middleware framework for standardized machine learning +## -- Package : mlpro.oa.streams.tasks.driftdetectors.instancebased +## -- Module : basics.py +## ------------------------------------------------------------------------------------------------- +## -- History : +## -- yyyy-mm-dd Ver. Auth. Description +## -- 2025-03-04 0.1.0 DA Creation +## ------------------------------------------------------------------------------------------------- + +""" +Ver. 0.1.0 (2025-03-04) + +This module provides a template for instance-based drift detection algorithms to be used in the context of online adaptivity. +""" + +from mlpro.oa.streams.tasks.driftdetectors.basics import DriftDetector + + + + +## ------------------------------------------------------------------------------------------------- +## ------------------------------------------------------------------------------------------------- +class DriftDetectorIB (DriftDetector): + """ + This is the base class for online-adaptive instance-based drift detectors. It raises an event + when a drift is detected. + """ + + C_TYPE = 'Instance-based Drift Detector' + + \ No newline at end of file