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