Isolation Forest
- class dtaianomaly.anomaly_detection.IsolationForest(window_size: int, stride: int = 1, **kwargs)[source]
Anomaly detector based on the Isolation Forest algorithm.
The isolation forest [Liu2008isolation] generates random binary trees to split the data. If an instance requires fewer splits to isolate it from the other data, it is nearer to the root of the tree, and consequently receives a higher anomaly score.
- Parameters:
window_size (int) – The window size to use for extracting sliding windows from the time series.
stride (int, default=1) – The stride, i.e., the step size for extracting sliding windows from the time series.
**kwargs – Arguments to be passed to scikit-learns isolation forest.
- detector_
An Isolation Forest detector of Sklearn. Only available upon fitting
- Type:
SklearnIsolationForest
Notes
This is a wrapper for scikit-learn’s Isolation Forest <https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.IsolationForest.html>` The constructor allows additional keyword arguments that will be passed to the underlying scikit-learn Isolation Forest.
Examples
>>> from dtaianomaly.anomaly_detection import IsolationForest >>> from dtaianomaly.data import demonstration_time_series >>> x, y = demonstration_time_series() >>> isolation_forest = IsolationForest(10).fit(x) >>> isolation_forest.decision_function(x) array([0.47552756, 0.48587594, 0.49067661, ..., 0.45292726, 0.45644108, 0.45439481])
References
[Liu2008isolation]F. T. Liu, K. M. Ting and Z. -H. Zhou, “Isolation Forest,” 2008 Eighth IEEE International Conference on Data Mining, Pisa, Italy, 2008, pp. 413-422, doi: 10.1109/ICDM.2008.17.
- decision_function(X: ndarray) ndarray[source]
Compute anomaly scores. If the detector has not been fitted prior to calling this function, it will be fitted on the input X.
- Parameters:
X (array-like of shape (n_samples, n_attributes)) – Input time series.
- Returns:
anomaly_scores – Isolation Forest scores. Higher is more anomalous.
- Return type:
array-like of shape (n_samples)
- Raises:
ValueError – If X is not a valid array.
NotFittedError – If this method is called before fitting the anomaly detector.
- fit(X: ndarray, y: ndarray | None = None) IsolationForest[source]
Fit this detector to the given data. Will be called automatically by decision_function.
- Parameters:
X (array-like of shape (n_samples, n_attributes)) – Input time series.
y (ignored) – Not used, present for API consistency by convention.
- Returns:
self – Returns the instance itself
- Return type:
- Raises:
ValueError – If X is not a valid array.