Table of Contents

Anomaly Detection

Wenn $p(x) < \epsilon$, dann liegt Anomalie vor.

$p(x) = p(x_1;\mu_1;\sigma^2_1)p(x_2;\mu_2;\sigma^2_2)\dots p(x_n;\mu_n;\sigma^2_n) = \prod_{j=i}^n p(x_j;\mu_j;\sigma^2_j)$

Unabhängigkeitsannahme

Schätzung von $\mu, \sigma$ (Normalverteilung)

$\mu_j = \frac{1}{m} \sum_{i=1}^m x_j^{(i)}$

Vektorisierbar als $\mu = 1/m \sum_{i=1}^m x^{(i)}$

$\sigma^2_j = \frac{1}{m} \sum^m_{i=1} (x_j^{(i)}-\mu_j)^2$

Evaluierung durch Kennzahl

Einige gelabelte Daten vorhanden.

y=0: normal (10000) y=1: anormal (20)

Split:

Evaluation

  1. Model $p(x)$ auf Trainingsset fitten
  2. Auf CV/Testset $x, y$ vorhersagen
  3. Metriken:
    • TP, FP, FN, TN
    • Precision/Recall
    • $F_1$-score
  4. $\epsilon$ auf CV-Set wählen

Anomaly detection vs. supervised learning

Anomaly detection:

Feature selection

Histogramm der Daten plotten, wenn es wie eine Normalverteilung aussieht, kann Feature verwendet werden. Logarithmische Transformation möglich $log(x+c)$ oder $x^{(1/2)}$

Häufigstes Problem: $p(x)$ ist ähnlich für normale und anormale Beispiele

Anomaly betrachten und Features entwickeln, bei denen die Anomaly außerhalb liegt.

Multivariate Normal Distribution

Nicht $p(x_n)$ modellieren, sonden ein Model $p(x)$ als Ganzes

Parameter: $\mu$ Crosscorrelation Matrix: $\Sigma \in \mathbb{R}^{n \times n}$

Vorteilhaft, wenn Features positiv/negativ korreliert.

Schätzung

  1. Fitten des Models durch Schätzung von $\mu,\Sigma$
  2. p(x) berechnen
    • Anomaly flaggen wenn $p(x) < \epsilon$

Unterschied zu vorherigem Modell: $\Sigma$ kann hier von 0 verschiedene Werte für nicht-diagonal Elemente besitzen.

Ursprüngliches Modell: