Skip to content

Commit

Permalink
Refact: Separation of anomaly detection from drift detection #1133
Browse files Browse the repository at this point in the history
  • Loading branch information
detlefarend committed Mar 3, 2025
1 parent fd35fd0 commit 215ef83
Show file tree
Hide file tree
Showing 25 changed files with 214 additions and 305 deletions.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="fcJVb3HREh7NScvAmxeq-0" value="" style="group" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1" connectable="0">
<mxGeometry x="510" y="40" width="490" height="220" as="geometry" />
<mxGeometry x="510" y="100" width="490" height="220" as="geometry" />
</mxCell>
<mxCell id="fcJVb3HREh7NScvAmxeq-1" value="&lt;font color=&quot;#000000&quot; size=&quot;1&quot;&gt;&lt;b style=&quot;font-size: 14px&quot;&gt;Legend:&lt;br&gt;&lt;/b&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#0000ff&quot; style=&quot;font-size: 6px&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(0 , 0 , 0)&quot;&gt;&lt;font style=&quot;font-size: 4px&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/font&gt;&amp;nbsp;In progress&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; In validation&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Ready to use&lt;/span&gt;&lt;font color=&quot;#000000&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;attribute / method()&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; New public attribute/method to be implemented&lt;/font&gt;&lt;br&gt;&lt;font color=&quot;#000000&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;attribute / method()&lt;span&gt; &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;New/inherited public attribute/method that is implemented here&lt;br&gt;&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt;&amp;nbsp;_attribute /&amp;nbsp;&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt;_method()&amp;nbsp; &amp;nbsp; New protected method/attribute to be implemented&lt;/font&gt;&lt;br&gt;&lt;font color=&quot;#000000&quot;&gt;&amp;nbsp;_attribute / _method()&amp;nbsp; &amp;nbsp; New/inherited protected attribute/method that is implemented here&lt;br&gt;&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/font&gt;" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;fontColor=#006600;strokeColor=#000000;shadow=1;fillColor=#ffffff;" parent="fcJVb3HREh7NScvAmxeq-0" vertex="1">
<mxGeometry width="489.99999999999994" height="220" as="geometry" />
Expand Down Expand Up @@ -55,7 +55,7 @@
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4use4ZCXdNiZSNTW99xv-1" value="AnomalyDetector&#xa;(OAStreamTask)" style="swimlane;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=41;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=1;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;swimlaneFillColor=#ffffff;gradientColor=#FFFFFF;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="40" y="146" width="350" height="537" as="geometry">
<mxGeometry x="40" y="146" width="350" height="583" as="geometry">
<mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
Expand All @@ -71,41 +71,44 @@
<mxCell id="K-uiR6WVb6SvZu_kqw6H-5" value="_ano_id : int = 0" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="4use4ZCXdNiZSNTW99xv-1" vertex="1">
<mxGeometry y="117" width="350" height="24" as="geometry" />
</mxCell>
<mxCell id="Lc1qOGf0GpVHGxsOyzFd-0" value="_ano_buffer_size : int" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="4use4ZCXdNiZSNTW99xv-1">
<mxGeometry y="141" width="350" height="24" as="geometry" />
</mxCell>
<mxCell id="7JkVl93vQoOUYRVFK4Rs-0" value="anomalies : dict[Anomaly]" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=1" parent="4use4ZCXdNiZSNTW99xv-1" vertex="1">
<mxGeometry y="141" width="350" height="26" as="geometry" />
<mxGeometry y="165" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="4use4ZCXdNiZSNTW99xv-5" value="" style="line;html=1;strokeWidth=1;align=center;verticalAlign=top;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;rounded=0;shadow=1;strokeColor=#6c8ebf;swimlaneFillColor=#ffffff;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=3;fillColor=#dae8fc;gradientColor=#ffffff;" parent="4use4ZCXdNiZSNTW99xv-1" vertex="1">
<mxGeometry y="167" width="350" height="8" as="geometry" />
<mxGeometry y="191" width="350" height="8" as="geometry" />
</mxCell>
<mxCell id="4use4ZCXdNiZSNTW99xv-6" value="__init__( p_name : str = None,&#xa;               p_range_max=MLTask.C_RANGE_THREAD,&#xa;               p_ada : bool = True,&#xa;               p_duplicate_data : bool = False&#xa;               p_visualize : bool = False,&#xa;               p_logging = Log.C_LOG_ALL,&#xa;               **p_kwargs )" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=1" parent="4use4ZCXdNiZSNTW99xv-1" vertex="1">
<mxGeometry y="175" width="350" height="109" as="geometry" />
<mxCell id="4use4ZCXdNiZSNTW99xv-6" value="__init__( p_name : str = None,&#xa;               p_range_max=MLTask.C_RANGE_THREAD,&#xa;               p_ada : bool = True,&#xa;               p_duplicate_data : bool = False&#xa;               p_visualize : bool = False,&#xa;               p_logging = Log.C_LOG_ALL,&#xa;               p_ano_buffer_size : int = 100,&#xa;               **p_kwargs )" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=1" parent="4use4ZCXdNiZSNTW99xv-1" vertex="1">
<mxGeometry y="199" width="350" height="125" as="geometry" />
</mxCell>
<mxCell id="N38WU9mJ-Era6qwWuLtT-0" value="_get_next_anomaly_id()" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;shadow=1;" parent="4use4ZCXdNiZSNTW99xv-1" vertex="1">
<mxGeometry y="284" width="350" height="30" as="geometry" />
<mxGeometry y="324" width="350" height="30" as="geometry" />
</mxCell>
<mxCell id="oLJumqx1HHhM9YScGNT0-2" value="_buffer_anomaly(p_anomaly : Anomaly)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;shadow=1;" parent="4use4ZCXdNiZSNTW99xv-1" vertex="1">
<mxGeometry y="314" width="350" height="30" as="geometry" />
<mxGeometry y="354" width="350" height="30" as="geometry" />
</mxCell>
<mxCell id="oLJumqx1HHhM9YScGNT0-3" value="_remove_anomaly(p_anomaly : Anomaly)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;shadow=1;" parent="4use4ZCXdNiZSNTW99xv-1" vertex="1">
<mxGeometry y="344" width="350" height="30" as="geometry" />
<mxGeometry y="384" width="350" height="30" as="geometry" />
</mxCell>
<mxCell id="oLJumqx1HHhM9YScGNT0-4" value="_raise_anomaly_event(p_anomaly : Anomaly)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;shadow=1;fontStyle=1" parent="4use4ZCXdNiZSNTW99xv-1" vertex="1">
<mxGeometry y="374" width="350" height="30" as="geometry" />
<mxCell id="oLJumqx1HHhM9YScGNT0-4" value="_raise_anomaly_event( p_anomaly : Anomaly, &#xa;                                        p_buffer : bool = True )" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;shadow=1;fontStyle=1" parent="4use4ZCXdNiZSNTW99xv-1" vertex="1">
<mxGeometry y="414" width="350" height="40" as="geometry" />
</mxCell>
<mxCell id="oLJumqx1HHhM9YScGNT0-5" value="init_plot(p_figure: Figure = None,&#xa;             p_plot_settings: PlotSettings = None)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;shadow=1;fontStyle=0" parent="4use4ZCXdNiZSNTW99xv-1" vertex="1">
<mxGeometry y="404" width="350" height="40" as="geometry" />
<mxGeometry y="454" width="350" height="40" as="geometry" />
</mxCell>
<mxCell id="oLJumqx1HHhM9YScGNT0-6" value="update_plot( p_inst : InstDict = None, **p_kwargs)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;shadow=1;fontStyle=0" parent="4use4ZCXdNiZSNTW99xv-1" vertex="1">
<mxGeometry y="444" width="350" height="29" as="geometry" />
<mxGeometry y="494" width="350" height="29" as="geometry" />
</mxCell>
<mxCell id="oLJumqx1HHhM9YScGNT0-7" value="remove_plot(self, p_refresh: bool = True)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;shadow=1;fontStyle=0" parent="4use4ZCXdNiZSNTW99xv-1" vertex="1">
<mxGeometry y="473" width="350" height="30" as="geometry" />
<mxGeometry y="523" width="350" height="30" as="geometry" />
</mxCell>
<mxCell id="hOcUKRqpv3udX4BvXm5B-0" value="renormalize(p_normalizer: Normalizer) " style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;shadow=1;fontStyle=0" parent="4use4ZCXdNiZSNTW99xv-1" vertex="1">
<mxGeometry y="503" width="350" height="30" as="geometry" />
<mxGeometry y="553" width="350" height="30" as="geometry" />
</mxCell>
<mxCell id="4use4ZCXdNiZSNTW99xv-16" value="Anomaly &#xa;(bf.various.Id, bf.events.Event, bf.plot.Plottable,&#xa;bf.math.normalizers.Renomalizable)" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=52;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=1;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;swimlaneFillColor=#ffffff;fontFamily=Helvetica;fontSize=12;gradientColor=#FFFFFF;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="510" y="349" width="290" height="334" as="geometry">
<mxGeometry x="510" y="404" width="290" height="325" as="geometry">
<mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
Drift detection
===============

.. image:: images/MLPro-OA-Drift-Detectors_class_diagram.drawio.png
.. image:: 40_drift_detection/images/MLPro-OA-Drift-Detectors_class_diagram.drawio.png
:scale: 50%


.. automodule:: mlpro.oa.streams.tasks.driftydetectors.basics
.. automodule:: mlpro.oa.streams.tasks.driftdetectors.basics
:members:
:undoc-members:
:private-members:
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
.. _target_api_oa_stream_tasks_dd_ib:
Instance-based drifts and detectors
===================================


.. image:: 10_instance_based/images/MLPro-OA-Drift-Detectors-IB_class_diagram.drawio.png
:scale: 50%


.. automodule:: mlpro.oa.streams.tasks.driftdetectors.instancebased.basics
:members:
:undoc-members:
:private-members:
:show-inheritance:


.. automodule:: mlpro.oa.streams.tasks.driftdetectors.drifts.instancebased.basics
:members:
:undoc-members:
:private-members:
:show-inheritance:


.. toctree::
:maxdepth: 2
:glob:

10_instance_based/*
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.. _target_api_oa_stream_tasks_ad_common_drifts:
Common drifts
=============

.. automodule:: mlpro.oa.streams.tasks.driftdetectors.drifts.instancebased.basics
:members:
:undoc-members:
:private-members:
:show-inheritance:
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,3 @@
Common algorithms
=================


.. toctree::
:maxdepth: 2
:glob:

common_algorithms/*
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
.. _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
:scale: 50%


.. automodule:: mlpro.oa.streams.tasks.driftdetectors.clusterbased.basics
:members:
:undoc-members:
:private-members:
:show-inheritance:


.. automodule:: mlpro.oa.streams.tasks.driftdetectors.drifts.clusterbased.basics
:members:
:undoc-members:
:private-members:
:show-inheritance:


.. toctree::
:maxdepth: 2
:glob:

20_cluster_based/*
Loading

0 comments on commit 215ef83

Please sign in to comment.