OutSpot is an efficient and robust unsupervised outlier detection framework, which can detect both subsequence outlier and outlier time series for large-scale datacenters. OutSpot applies the hierarchical agglomerative clustering (HAC) method to cluster KPIs based on their patterns. For learning both the historical pattern of each KPI and the pattern of all KPIs in the same period, it then encodes the clustering information into the generative model using the conditional variational autoencoder (CVAE) method. Additionally, OutSpot compares the reconstructed and original KPI shapes to determine whether a KPI is an outlier.
git clone https://github.com/OutlierDetection-OutSpot/Code.git
cd Code && git clone https://github.com/OutlierDetection-OutSpot/Dataset.git && cd Dataset && unzip data.zip && cd ../
conda create -n py38 python=3.8.10
conda activate py38
pip install -r requirements.txt
cd code
python run.py
python evaluate.py
If you want to change the default configuration, you can edit DefaultConfig
in code/config.py
After running the programmings, you can get the output in the file directory that you set in the code/config.py
. For each kpi of each machine, you can get their anomaly score.
- All of kpis's anomaly score are in
{config.result_dir}/score.xlsx
- Trained model is in
code/model_weight/cvae/my_model_weight
- Logs are in
{config.log_dir}
- The threshold, accuracy, and recall for achieving the best score will be output on the console