data_mining:anomaly_detection

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
data_mining:anomaly_detection [2014/08/30 14:21] phreazerdata_mining:anomaly_detection [2014/08/30 17:00] (current) – [Schätzung von $\mu, \sigma$ (Normalverteilung)] phreazer
Line 1: Line 1:
 ====== Anomaly Detection ====== ====== Anomaly Detection ======
-Wenn $p(x) \leq \epsilon$, dann liegt Anomalie vor.+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)$ $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)$
Line 7: Line 7:
  
 ===== Schätzung von $\mu, \sigma$ (Normalverteilung) ==== ===== Schätzung von $\mu, \sigma$ (Normalverteilung) ====
-$\mu 1/m \sum_{i=1}^x^{(i)}+$\mu_j = \frac{1}{m} \sum_{i=1}^m x_j^{(i)}$
-$\sigma^2 = 1/m \sum^m_{i=1} (x_j^{(i)}-\mu_j)^2$+
  
 +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:**
 +  * Training set: 6000 (y=0)
 +  * CV: 2000 good (y=0); 10 anom (y=1)
 +  * Test: 2000 good (y=0); 10 anom (y=1)
 +
 +==== Evaluation ====
 +  - Model $p(x)$ auf Trainingsset fitten
 +  - Auf CV/Testset $x, y$ vorhersagen
 +  - Metriken:
 +    * TP, FP, FN, TN
 +    * Precision/Recall
 +    * $F_1$-score
 +   - $\epsilon$ auf CV-Set wählen
 +
 +===== Anomaly detection vs. supervised learning =====
 +
 +Anomaly detection:
 +  * Kleine Zahl positiver Beispiele
 +  * Viele verschiedene Typen von Anomalien, für Algorithmen schwer vorhersehbar, wie die Anomalien aussehen (zukünftige Anomalien können in der Zukunft völlig anders aussehen).
 +
 +===== 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 ====
 +  - Fitten des Models durch Schätzung von $\mu,\Sigma$
 +  - 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:
 +  * Wenn manuell Features erzeugt werden, die ungewöhnliche Kombinationen beinhalten $x_3=x_1/x_2$
 +  * Weniger  Rechenintensiv (n = 10000 bis 100000)
 +  * Geeignet auch wenn m klein (Multivar. muss m > n haben)
  • data_mining/anomaly_detection.1409401268.txt.gz
  • Last modified: 2014/08/30 14:21
  • by phreazer