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).