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
Last revisionBoth sides next revision
data_mining:anomaly_detection [2014/08/30 14:23] – [Schätzung von $\mu, \sigma$ (Normalverteilung)] phreazerdata_mining:anomaly_detection [2014/08/30 17:00] – [Multivariate Normal Distribution] 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}^m x^{(i)}$+$\mu_j = 1/m \sum_{i=1}^m x_j^{(i)}$ 
 + 
 +Vektorisierbar als $\mu = 1/m \sum_{i=1}^m x^{(i)}$
  
 $\sigma^2_j = 1/m \sum^m_{i=1} (x_j^{(i)}-\mu_j)^2$ $\sigma^2_j = 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.txt
  • Last modified: 2014/08/30 17:00
  • by phreazer