kats.detectors.outlier module¶
Module with generic outlier detection models. Supports a univariate algorithm that treates each metric separately to identify outliers and a multivariate detection algorithm that determines outliers based on joint distribution of metrics
- class kats.detectors.outlier.MultivariateAnomalyDetector(data: kats.consts.TimeSeriesData, params: kats.consts.Params, training_days: float, model_type: kats.detectors.outlier.MultivariateAnomalyDetectorType = <MultivariateAnomalyDetectorType.VAR: 'var.VARModel'>)[source]¶
Bases:
kats.detectors.detector.Detector
Detector class for Multivariate Outlier Detection. Provides utilities to calculate anomaly scores, get anomalous datapoints and anomalous metrics at those points.
- data¶
Input metrics TimeSeriesData
- params¶
Parameter class for multivariate VAR/ BVAR model
- training_days¶
num of days of data to use for initial training. If less than a day, specify as fraction of a day
- model_type¶
The type of multivariate anomaly detector (currently ‘BAYESIAN_VAR’ and ‘VAR’ options available)
- detector() → pandas.core.frame.DataFrame[source]¶
Fit the detection model and return the results
- Returns
DataFrame with colums corresponding to individual anomaly scores of each metric and the overall anomaly score for the whole timeseries
- get_anomalous_metrics(t: datetime.datetime, top_k: Optional[int] = None) → pandas.core.frame.DataFrame[source]¶
Find top k metrics with most anomalous behavior at time t
- Parameters
t – time instant of interest (same type as TimeSeriesData.time)
top_k – Top few metrics to return. If None, returns all
- Returns
DataFrame with metrics and their corresponding anomaly score
- get_anomaly_timepoints(alpha: float) → List[source]¶
Helper function to get anomaly timepoints based on the significance level
- Parameters
alpha – significance level to consider the timeperiod anomalous
plot() to help choose a good threshold (Use) –
- Returns
List of time instants when the system of metrics show anomalous behavior
- class kats.detectors.outlier.MultivariateAnomalyDetectorType(value)[source]¶
Bases:
enum.Enum
An enumeration.
- class kats.detectors.outlier.OutlierDetector(data: kats.consts.TimeSeriesData, decomp: str = 'additive', iqr_mult: float = 3.0)[source]¶
Bases:
kats.detectors.detector.Detector
This univariate outlier detection algorithm mimics the outlier detection algorithm in R
- data¶
TimeSeriesData object with the time series
- decomp¶
‘additive’ or ‘multiplicative’ decomposition
- iqr_mult¶
iqr_mult * inter quartile range is used to classify outliers