Wykrywanie anomalii w zbiorze danych o dużym wymiarze

Transkrypt

Wykrywanie anomalii w zbiorze danych o dużym wymiarze
Wykrywanie anomalii w zbiorze danych
o dużym wymiarze
Piotr Kroll
Na podstawie pracy: „Very Fast Outlier Detection In Large
Multidimensional Data Set” autorstwa: A. Chandhary, A. Shalay,
A. Moore
Różne rozwiązania zagadnienia detekcji
anomalii w zależności od rozmiaru danych
●
●
●
Duża ilość danych o małym wymiarze (małej ilości cech)
Przykładowe rozwiązanie: Dopasować model probabilistyczny do
danych i wybrać te dane o małym prawdopodobieństwie
wystąpienia
Duża ilość danych o dużym wymiarze
Rozwiązanie zaproponowane w pracy: „Very Fast Outlier
Detection In Large Multidimensional Data Set” autorstwa: A.
Chandhary, A. Shalay, A. Moore
Mała ilość danych o dużym wymiarze
Rozwiązanie zaproponowane w pracy: „Outlier Detection for High
Dimensional Data” autorstwa: C. Aggarwal, P. Yu
Algorytm wykrywający anomalie w dużym
zbiorze danych o dużym wymiarze
Algorytm składa się z dwóch podstawowych etapów:
●
Podział zbioru danych na podzbiory składające się z elementów, o
których można powiedzieć, że są w tym samym stopniu anomalią.
●
Wyliczenie, dla każdego z podzbioru współczynnika mierzącego w
jakim stopniu dana grupa elementów jest anomalią w stosunku do
całego zbioru danych (współczynnik anomalii). A nasępnie
wybranie tych podzbiorów, które mają najwyższy współczynnik.
Miara anomalii
●
Gęstość obszaru wokół danego elementu jako jego miara anomalii
gęstość = (ilość elementów w obszarze V) / (objetość obszaru V)
●
Mówimy, że dany zbiór zawiera elementy będące w równym
stopniu anomaliami jeżeli dany zbiór jest jednostajnie gęsty.
Podział zbioru na obszary zawierające
elementy będące w równym stopniu
anomalią
●
●
Wykorzystanie metody podziału zaczerpniętej z K-d drzew
(k-dimensional trees)
Algorytm:
1)Załóżmy, że rozpatrywany zbiór elementów S zawiera się w
obszarze R będącym hiperkostką
2)Wybieramy i-ty wymiar (i-tą oś) przestrzeni danych i
prostopadłą do niego hiperpłaszczyznę T przechodzącą przez R
3)Dzielimy przy pomocy hiperpłaszczyzny T obszar R na dwa
obszary Rl i Rp (hiperkostki), a następnie „kurczymy” je tak,
aby ściśle przylegały do danych
4)Wykonujemy algorytm dla obszarów Rl i Rp i odpowiadającym
im podzbiorom Sl i Sp zbioru S. Algorytm powtarzamy o ile
|Sl|>c i |Sp|>c dla utalonego c.
Przykład podziału
Sposoby wyboru osi
●
●
Wybór cykliczny (np. na przemian oś OX, OY, OX…).
Metoda nie wymaga obliczeń i przez to szybsza
Wybór tej osi, na której rzut danych jest najszerszy.
Wymaga obliczeń.
Wybór hiperpłaszczyzny dzielącej na dwa
obszary
●
Cel: taki podział, aby zmniejszyć różnorodność charakteru danych
w wyliczonych obszarach, w stosunku do danych, na których
odbywa się podział.
Inaczej: podział na obszary danych o mniejszej gęstości i większej
gęstości
●
Dwa sposoby podziału podczas wykonywania algorytmu.
●
Zwykły podział według mediany rzutu elementów na wybraną oś
●
Podział za pomocą „specjalnych cięć”.
Wybór hiperpłaszczyzny dzielącej na dwa
obszary: specjalne cięcia
●
●
Specjalne cięcia są wykonywane gdy w i-tym wymiarze większość
danych skupia się (ich gęstość jest duża) po jednej stronie, a reszta
po drugiej. Mówimy wtedy, że dane mają dużą skośność.
Prosty test na skośność danych:
Cm – środek masy danych (mediana)
Cv – środek obszaru danych
|V| - szerokość obszaru danych
SK = |Cm-Cv|/|V|
●
Wykonanie specjalnych cięć (wykresy)
Wybór hiperpłaszczyzny dzielącej na dwa
obszary: specjalne cięcia
●
●
Specjalne cięcia wykonujemy na osi, na której wartość SK jest
największa i o ile jest ona większa od ustalonej stałej. W
przeciwnym wypadku wykonuje się zwykły podział.
Specjalne cięcia są wykonywane tylko na ostatnich k poziomach
podziału (dzięki temu algorytm jest szybszy, bo drzewo podziału
jest zbalansowane)
Wyliczenie zbioru anomalii
●
●
Po podzieleniu przestrzeni na obszary składające się z elementów
będących w tym samym stopniu anomaliami, wyliczamy ich
współczynnik gęstości i wybieramy te, których wartość
współczynnika jest najmniejsza.
Elementy zawarte w wyliczanych obszarach są szukanymi
anomaliami
Przykład działania algorytmu
●
Dane astronomiczne – Solan Digital Sky Survey (SDSS)
Wykres danych. Podział przestrzeni danych. 10% spośród obszarów
mających najmniejszą gęstość
●
Inna metoda wyliczania specjalnych cięć i
współczynnika anomalii. Definicja zbioru
anomalii.
●
Definicja zbioru anomalii
Niech:
- I będzie zbiorem danych
- D:P(I)->R+0 będzie funkcją różnorodności danych
- C:P(I)->R+0 będzie funkcją kardynalną (I1 c I2=>C(I1)<C(I2))
Definiujemy dla każdego zbioru Ij funkcję:
SF(Ij) = C(I - Ij) * (D(I) - D(I-Ij))
●
Mówimy, że Ix jest zbiorem anomalii zbioru I jeżeli funkcja SF
przyjmuje wartość największą dla zbioru Ix
Inna metoda wyliczania specjalnych cięć i
współczynnika anomalii. Definicja zbioru
anomalii.
●
●
●
C – miara wielkości zbioru
Wartość D(Ij) jest tym większa im dane w zbiorze Ij są bardziej
różnorodne (definicja bardzo nieformalna). Stąd jeżeli Ij jest
zbiorem anomalii to wartość D(I) - D(I-Ij) jest stosunkowo duża.
Z kolei jeżeli ta różnica jest taka sama dla dwóch zbiorów Ii i Ij to
wartość SF powinna być większa dla zbioru mniejszego (co
gwarantuje współczynnik C(I-Ij) )
Przykłady funkcji D:
- wariancja zbioru
- odwrotność współczynnika gęstości danych (im dane są rzadsze
tym bardziej różnorodne)
Wykonywanie specjalnych cięć i wybór
zbiorów anomalii przy pomocy funkcji SF
●
●
Załóżmy, że i-ty wymiar jest tym, w którym dane mają maksymalną
skośność i że rzadki obszar danych jest z lewej strony (obszar
anomalii).
Niech l będzie punktem dzielącym zrzutowane dane (na i-tą oś) na
obszar lewy i prawy.
Wtedy specjalne cięcie zostanie wykonane w punkcie l, dla którego
elementy z lewego obszaru mają maksymalną wartość SF
Po podziale całej przestrzeni danych wybieramy te podzbiory
danych, które znajdują się w obszarach mających największą
wartość funkcji SF
Jakość wykrytych anomalii i czas
wykonania algorytmu
●
●
●
Test poprawności algorytmu został przeprowadzony dla
wygenerowanych danych (z rozkładu Gaussian mixture)
Zbiór wyliczonych anomalii został porównany ze zbiorem anomalii
wyliczonych za pomocą algorytmu EM i algorytmu FastMix
(wariacja algorytmu EM)
Algorytm został wykonany w ciągu 39 sekund i był tak samo dobry
co algorytm EM wykonywany w czasie 2560 sekund i FastMix
wykonany w ciagu 396 sekund. Ale już nie tak dobry jak algorytm
FastMix wykonany w ciągu 749 sekund (im dłużej algorytm
FastMix działa tym precyzyjniej może obliczyć zbiór anomalii).