Skip to content

Latest commit

 

History

History

donut

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Donut

Citekey XuEtAl2018Unsupervised
Source Code https://github.com/NetManAIOps/Donut
Learning type semi-supervised
Input dimensionality univariate

The implementation of 'Unsupervised Anomaly Detection via Variational Auto-Encoder for Seasonal KPIs in Web Applications'.

Dependencies

Notes

Early Stopping is applied through the TrainingLoop-Class. However, it uses an own stopping condition.

Donut outputs anomaly window scores. Therefore, the results require post-processing.

U can use the following code snippet for the post-processing step in TimeEval (default parameters directly filled in from the source code):

from timeeval.utils.window import ReverseWindowing
# post-processing for Donut
def post_donut(scores: np.ndarray, args: dict) -> np.ndarray:
    window_size = args.get("hyper_params", {}).get("window_size", 120)
    return ReverseWindowing(window_size=window_size).fit_transform(scores)