SKAB is designed for evaluating algorithms for anomaly detection. The benchmark currently includes 30+ datasets plus Python modules for algorithms’ evaluation. Each dataset represents a multivariate time series collected from the sensors installed on the testbed. All instances are labeled for evaluating the results of solving outlier detection and changepoint detection problems.
http://www.gnu.org/licenses/agpl-3.0.htmlhttp://www.gnu.org/licenses/agpl-3.0.html
❗️❗️❗️**The current version of SKAB (v0.9) contains 34 datasets with collective anomalies. But the upcoming update to v1.0 (probably up to the summer of 2021) will contain 300+ additional files with point and collective anomalies. It will make SKAB one of the largest changepoint-containing benchmarks, especially in the technical field.**
We propose the Skoltech Anomaly Benchmark (SKAB) designed for evaluating the anomaly detection algorithms. SKAB allows working with two main problems (there are two markups for anomalies): * Outlier detection (anomalies considered and marked up as single-point anomalies) * Changepoint detection (anomalies considered and marked up as collective anomalies)
SKAB consists of the following artifacts: * Datasets. * Leaderboard (scoreboard). * Python modules for algorithms’ evaluation. * Notebooks: python notebooks with anomaly detection algorithms.
The IIot testbed system is located in the Skolkovo Institute of Science and Technology (Skoltech). All the details regarding the testbed and the experimenting process are presented in the following artifacts: - Position paper (currently submitted for publication) - Slides about the project
The SKAB v0.9 corpus contains 35 individual data files in .csv format. Each file represents a single experiment and contains a single anomaly. The dataset represents a multivariate time series collected from the sensors installed on the testbed. The data folder contains datasets from the benchmark. The structure of the data folder is presented in the structure file. Columns in each data file are following:
- datetime
- Represents dates and times of the moment when the value is written to the database (YYYY-MM-DD hh:mm:ss)
- Accelerometer1RMS
- Shows a vibration acceleration (Amount of g units)
- Accelerometer2RMS
- Shows a vibration acceleration (Amount of g units)
- Current
- Shows the amperage on the electric motor (Ampere)
- Pressure
- Represents the pressure in the loop after the water pump (Bar)
- Temperature
- Shows the temperature of the engine body (The degree Celsius)
- Thermocouple
- Represents the temperature of the fluid in the circulation loop (The degree Celsius)
- Voltage
- Shows the voltage on the electric motor (Volt)
- RateRMS
- Represents the circulation flow rate of the fluid inside the loop (Liter per minute)
- anomaly
- Shows if the point is anomalous (0 or 1)
- changepoint
- Shows if the point is a changepoint for collective anomalies (0 or 1)
Here we propose the leaderboard for SKAB v0.9 both for outlier and changepoint detection problems. You can also present and evaluate your algorithm using SKAB on kaggle. The results in the tables are calculated in the python notebooks from the notebooks folder.
Sorted by F1; for F1 bigger is better; both for FAR and MAR less is better
| Algorithm | F1 | FAR, % | MAR, %
|---|---|---|---|
Perfect detector | 1 | 0 | 0
T-squared+Q (PCA) | 0.67 | 13.95 | 36.32
LSTM | 0.64 | 15.4 | 39.93
MSCRED | 0.64 | 13.56 | 41.16
T-squared | 0.56 | 12.14 | 52.56
Autoencoder | 0.45 | 7.56 | 66.57
Isolation forest | 0.4 | 6.86 | 72.09
Null detector | 0 | 0 | 100
Sorted by NAB (standart); for all metrics bigger is better
| Algorithm | NAB (standart) | NAB (lowFP) | NAB (LowFN) |
|---|---|---|---|
Perfect detector | 100 | 100 | 100
Isolation forest | 37.53 | 17.09 | 45.02
MSCRED | 28.74 | 23.43 | 31.21
LSTM | 27.09 | 11.06 | 32.68
T-squared+Q (PCA) | 26.71 | 22.42 | 28.32
T-squared | 17.87 | 3.44 | 23.2
ArimaFD | 16.06 | 14.03 | 17.12
Autoencoder | 15.59 | 0.78 | 20.91
Null detector | 0 | 0 | 0
The notebooks folder contains python notebooks with the code for the proposed leaderboard results reproducing.
We have calculated the results for five quite common anomaly detection algorithms: - Hotelling's T-squared statistics; - Hotelling's T-squared statistics + Q statistics based on PCA; - Isolation forest; - LSTM-based NN; - Feed-Forward Autoencoder.
Additionaly to the repository were added the results of the following algorithms: - ArimaFD; - MSCRED.
Please cite our project in your publications if it helps your research.
Iurii D. Katser and Vyacheslav O. Kozitsin, “Skoltech Anomaly Benchmark (SKAB).” Kaggle, 2020, doi: 10.34740/KAGGLE/DSV/1693952.
Or in BibTeX format:
@misc{skab,
author = {Katser, Iurii D. and Kozitsin, Vyacheslav O.},
title = {Skoltech Anomaly Benchmark (SKAB)},
year = {2020},
publisher = {Kaggle},
howpublished = {\url{https://www.kaggle.com/dsv/1693952}},
DOI = {10.34740/KAGGLE/DSV/1693952}
}
SKAB is acknowledged by some ML resources.
Not seeing a result you expected?
Learn how you can add new datasets to our index.
SKAB is designed for evaluating algorithms for anomaly detection. The benchmark currently includes 30+ datasets plus Python modules for algorithms’ evaluation. Each dataset represents a multivariate time series collected from the sensors installed on the testbed. All instances are labeled for evaluating the results of solving outlier detection and changepoint detection problems.