{ "cells": [ { "cell_type": "markdown", "id": "35f92df6", "metadata": {}, "source": [ "# A Gentle Introduction to Anomaly Detection in Merlion" ] }, { "cell_type": "markdown", "id": "6504e0e6", "metadata": {}, "source": [ "We begin by importing Merlion's `TimeSeries` class and the data loader for the Numenta Anomaly Benchmark `NAB`. We can then divide a specific time series from this dataset into training and testing splits." ] }, { "cell_type": "code", "execution_count": 1, "id": "caa231be", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Time series /Users/abhatnagar/Desktop/Merlion_public/data/nab/realKnownCause/ec2_request_latency_system_failure.csv (index 2) has timestamp duplicates. Kept first values.\n", "Time series /Users/abhatnagar/Desktop/Merlion_public/data/nab/realKnownCause/machine_temperature_system_failure.csv (index 3) has timestamp duplicates. Kept first values.\n" ] } ], "source": [ "from merlion.utils import TimeSeries\n", "from ts_datasets.anomaly import NAB\n", "\n", "time_series, metadata = NAB(subset=\"realKnownCause\")[3]\n", "train_data = TimeSeries.from_pd(time_series[metadata.trainval])\n", "test_data = TimeSeries.from_pd(time_series[~metadata.trainval])\n", "test_labels = TimeSeries.from_pd(metadata.anomaly[~metadata.trainval])" ] }, { "cell_type": "markdown", "id": "1ab7488e", "metadata": {}, "source": [ "We can then initialize and train Merlion's `DefaultDetector`, which is an anomaly detection model that balances performance with efficiency. We also obtain its predictions on the test split." ] }, { "cell_type": "code", "execution_count": 2, "id": "26f41bf4", "metadata": {}, "outputs": [], "source": [ "from merlion.models.defaults import DefaultDetectorConfig, DefaultDetector\n", "model = DefaultDetector(DefaultDetectorConfig())\n", "model.train(train_data=train_data)\n", "test_pred = model.get_anomaly_label(time_series=test_data)" ] }, { "cell_type": "markdown", "id": "28de2123", "metadata": {}, "source": [ "Next, we visualize the model's predictions." ] }, { "cell_type": "code", "execution_count": 3, "id": "869a78e7", "metadata": {}, "outputs": [ { "data": { "image/png": "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fvnlF8n2Va1aFR06dMBzzz2H27dv47fffsOiRYu8LgX37bffwmKx4NixYzh06BAOHTqEP/74A506dXJI25DTt29fnDhxAl999RVsNhuWL1+OY8eOuc15luJuu8pJTExE79698dRTT+HatWuw2+04deoUtm/fDgBYuXIlzp8/DwCIiYmByWSC2az+KWjUqFH4/vvv8d///pfvPWbfKywsDLGxscjPz8fs2bNll9G0aVMcPXoUhw4dwu3bt/Hiiy/yz3m6nxBCAhMFyISUIQMGDEBERASqVq2Kl19+GU8++SQ+/fRT/vlXX30VderUQbt27RAZGYmePXvK5p726dMHqampSElJQfXq1VGuXDmHtILx48ejadOmqFGjBnr37i1btQAoqS4AALGxsfyAKgB47LHHEBERgSpVquCJJ57A0KFDkZaWxgdWM2bMwMCBA9G7d29ERESgXbt2fFBboUIFPP/887jnnnsQHR2NPXv2YPDgwXj22WcxatQoREZG4u6778amTZsAABEREfjhhx+wbt06JCQkoG7duvjxxx9l27d06VKcPXsWd911FwYPHoyXXnoJPXv2lP2Or7zyCu69917J5xYvXozJkyejWrVqSEhI4P977LHHsGTJErdl4mJjY7F+/Xq8+eabiI2NxWuvvYb169fz6RqecLddXfn8889RWFiIhg0bIiYmBsOGDcOlS5cAlNytaNu2LSpWrIiBAwfinXfeQa1atTxunzuJiYlo3749du3a5fCbmzBhAqpXr46kpCQ0bNgQ7dq1k11GSkoK/vnPf6Jnz56oW7euU760J/sJISQwmbhAKyhKCCGEEEKIhqgHmRBCCCGEEAEKkAkhhBBCCBGgAJkQQgghhBABCpAJIYQQQggRCOg6yGazGeXKlfN3MxwVF6uzHItFneWogOM4j2q6ksBB2zZ40bZVIECP1wG/bdVY7wY6R6op4LetB27fvi1b2tMIAjpALleuHE6dOuXvZjgo2rABpqgon5bB5eUhpF8/lVrku4yMDMTHx/u7GUQDtG2DF21b9wL1eB3o29bX9W60c6SaAn3besLdJEFTpkzB+vXrUblyZRw5cgQAkJ2djZEjR+Ls2bOoUaMGVqxYgZiYGE3aRykWhBBCCCHEUCZNmoS0tDSHx+bPn48ePXrg5MmT6NGjB+bPn6/Z51OATAghhBBCDKVz586o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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from merlion.plot import plot_anoms\n", "import matplotlib.pyplot as plt\n", "fig, ax = model.plot_anomaly(time_series=test_data)\n", "plot_anoms(ax=ax, anomaly_labels=test_labels)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "d5343929", "metadata": {}, "source": [ "Finally, we can quantitatively evaluate the model. The precision and recall come from the fact that the model fired 3 alarms, with 2 true positives, 1 false negative, and 1 false positive. We also evaluate the mean time the model took to detect each anomaly that it correctly detected." ] }, { "cell_type": "code", "execution_count": 4, "id": "7e98f175", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Precision: 0.6667, Recall: 0.6667, F1: 0.6667\n", "Mean Time To Detect: 1 days 10:32:30\n" ] } ], "source": [ "from merlion.evaluate.anomaly import TSADMetric\n", "p = TSADMetric.Precision.value(ground_truth=test_labels, predict=test_pred)\n", "r = TSADMetric.Recall.value(ground_truth=test_labels, predict=test_pred)\n", "f1 = TSADMetric.F1.value(ground_truth=test_labels, predict=test_pred)\n", "mttd = TSADMetric.MeanTimeToDetect.value(ground_truth=test_labels, predict=test_pred)\n", "print(f\"Precision: {p:.4f}, Recall: {r:.4f}, F1: {f1:.4f}\\n\"\n", " f\"Mean Time To Detect: {mttd}\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.5" } }, "nbformat": 4, "nbformat_minor": 5 }