Skip to content

Commit 28f2ffc

Browse files
authored
[REF] Refactor Anomaly Detection Module into Submodules by Algorithm Family (#2694)
* Refactor Anomaly Detection Module into Submodules by Algorithm Family * updated documentation and references * implemented suggested changes * minor changes * added headers for remaining algorithm family * removing tree-based header
1 parent 724cdb0 commit 28f2ffc

39 files changed

+140
-62
lines changed

aeon/anomaly_detection/__init__.py

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,7 @@
11
"""Time Series Anomaly Detection."""
22

33
__all__ = [
4-
"CBLOF",
5-
"COPOD",
6-
"DWT_MLEAD",
7-
"IsolationForest",
8-
"KMeansAD",
9-
"LeftSTAMPi",
10-
"LOF",
11-
"MERLIN",
12-
"OneClassSVM",
13-
"ROCKAD",
14-
"PyODAdapter",
15-
"STOMP",
16-
"STRAY",
4+
"BaseAnomalyDetector",
175
]
186

19-
from aeon.anomaly_detection._cblof import CBLOF
20-
from aeon.anomaly_detection._copod import COPOD
21-
from aeon.anomaly_detection._dwt_mlead import DWT_MLEAD
22-
from aeon.anomaly_detection._iforest import IsolationForest
23-
from aeon.anomaly_detection._kmeans import KMeansAD
24-
from aeon.anomaly_detection._left_stampi import LeftSTAMPi
25-
from aeon.anomaly_detection._lof import LOF
26-
from aeon.anomaly_detection._merlin import MERLIN
27-
from aeon.anomaly_detection._one_class_svm import OneClassSVM
28-
from aeon.anomaly_detection._pyodadapter import PyODAdapter
29-
from aeon.anomaly_detection._rockad import ROCKAD
30-
from aeon.anomaly_detection._stomp import STOMP
31-
from aeon.anomaly_detection._stray import STRAY
7+
from aeon.anomaly_detection.base import BaseAnomalyDetector
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
"""Distance basedTime Series Anomaly Detection."""
2+
3+
__all__ = [
4+
"CBLOF",
5+
"KMeansAD",
6+
"LeftSTAMPi",
7+
"LOF",
8+
"MERLIN",
9+
"OneClassSVM",
10+
"STOMP",
11+
]
12+
13+
from aeon.anomaly_detection.distance_based._cblof import CBLOF
14+
from aeon.anomaly_detection.distance_based._kmeans import KMeansAD
15+
from aeon.anomaly_detection.distance_based._left_stampi import LeftSTAMPi
16+
from aeon.anomaly_detection.distance_based._lof import LOF
17+
from aeon.anomaly_detection.distance_based._merlin import MERLIN
18+
from aeon.anomaly_detection.distance_based._one_class_svm import OneClassSVM
19+
from aeon.anomaly_detection.distance_based._stomp import STOMP

aeon/anomaly_detection/_cblof.py renamed to aeon/anomaly_detection/distance_based/_cblof.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import numpy as np
99

10-
from aeon.anomaly_detection._pyodadapter import PyODAdapter
10+
from aeon.anomaly_detection.outlier_detection._pyodadapter import PyODAdapter
1111
from aeon.utils.validation._dependencies import _check_soft_dependencies
1212

1313

aeon/anomaly_detection/_kmeans.py renamed to aeon/anomaly_detection/distance_based/_kmeans.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class KMeansAD(BaseAnomalyDetector):
6565
Examples
6666
--------
6767
>>> import numpy as np
68-
>>> from aeon.anomaly_detection import KMeansAD
68+
>>> from aeon.anomaly_detection.distance_based import KMeansAD
6969
>>> X = np.array([1, 2, 3, 4, 1, 2, 3, 3, 2, 8, 9, 8, 1, 2, 3, 4], dtype=np.float64)
7070
>>> detector = KMeansAD(n_clusters=3, window_size=4, stride=1, random_state=0)
7171
>>> detector.fit_predict(X)

aeon/anomaly_detection/_left_stampi.py renamed to aeon/anomaly_detection/distance_based/_left_stampi.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class LeftSTAMPi(BaseAnomalyDetector):
4444
Internally,this is applying the incremental approach outlined below.
4545
4646
>>> import numpy as np # doctest: +SKIP
47-
>>> from aeon.anomaly_detection import LeftSTAMPi # doctest: +SKIP
47+
>>> from aeon.anomaly_detection.distance_based import LeftSTAMPi # doctest: +SKIP
4848
>>> X = np.random.default_rng(42).random((10)) # doctest: +SKIP
4949
>>> detector = LeftSTAMPi(window_size=3, n_init_train=3) # doctest: +SKIP
5050
>>> detector.fit_predict(X) # doctest: +SKIP

aeon/anomaly_detection/_lof.py renamed to aeon/anomaly_detection/distance_based/_lof.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import numpy as np
99

10-
from aeon.anomaly_detection._pyodadapter import PyODAdapter
10+
from aeon.anomaly_detection.outlier_detection._pyodadapter import PyODAdapter
1111
from aeon.utils.validation._dependencies import _check_soft_dependencies
1212

1313

aeon/anomaly_detection/_merlin.py renamed to aeon/anomaly_detection/distance_based/_merlin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class MERLIN(BaseAnomalyDetector):
4343
Examples
4444
--------
4545
>>> import numpy as np
46-
>>> from aeon.anomaly_detection import MERLIN
46+
>>> from aeon.anomaly_detection.distance_based import MERLIN
4747
>>> X = np.array([1, 2, 3, 4, 1, 2, 3, 4, 2, 3, 4, 5, 1, 2, 3, 4])
4848
>>> detector = MERLIN(min_length=4, max_length=5)
4949
>>> detector.fit_predict(X)
File renamed without changes.

aeon/anomaly_detection/_stomp.py renamed to aeon/anomaly_detection/distance_based/_stomp.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class STOMP(BaseAnomalyDetector):
3838
Examples
3939
--------
4040
>>> import numpy as np
41-
>>> from aeon.anomaly_detection import STOMP # doctest: +SKIP
41+
>>> from aeon.anomaly_detection.distance_based import STOMP # doctest: +SKIP
4242
>>> X = np.random.default_rng(42).random((10, 2), dtype=np.float64)
4343
>>> detector = STOMP(X, window_size=2) # doctest: +SKIP
4444
>>> detector.fit_predict(X, axis=0) # doctest: +SKIP
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
"""Distance based test code."""

0 commit comments

Comments
 (0)