Data mining w systemach dynamicznych
Transkrypt
Data mining w systemach dynamicznych
Zakład Zaawansowanych Technik Informacyjnych (Z-6) Data mining w systemach dynamicznych Praca statutowa nr 06.30.005.7 Warszawa, grudzień 2007 1 Data mining w systemach dynamicznych Praca statutowa nr 06.30.005.7 Słowa kluczowe: data-mining, system dynamiczny Kierownik pracy: dr inż. Szymon Jaroszewicz Wykonawcy pracy: dr inż. Szymon Jaroszewicz dr inż. Janusz Granat c Copyright by Instytut Łączności, Warszawa 2007 Spis treści 1 Publikacje powstałe w ramach pracy 4 2 Wstęp 2.1 Notacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 3 Analiza systemów z czasem dyskretnym 3.1 Ukryte Modele Markowa (HMM) . . . . . . . . . . . . . . . . . . . . . . 3.2 Prawdopodobieństwo zaobserwowania danej sekwencji wyjściowej w ukrytym modelu Markowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Interesujące sekwencje czasowe . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Znajdowanie często występujących sekwencji w danych . . . . . . . . . . 3.5 Znajdowanie często występujących sekwencji w ukrytym modelu Markowa 3.6 Szacowanie parametrów ukrytego modelu Markowa . . . . . . . . . . . . 5 6 4 Przykładowa aplikacja: analiza ności 4.1 Preprocessing danych . . . . . 4.2 Model początkowy . . . . . . 4.3 Etapy budowy modelu . . . . 4.4 Inne interesujące sekwencje. . 4.5 Ostateczny model . . . . . . . 6 7 7 7 8 logów serwera WWW Instytutu Łącz. . . . . 9 9 10 11 12 12 5 Reguły asocjacyjne dla atrybutów numerycznych 5.1 Omówienie artykułów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Przykładowe zastosowanie do układu równań opisującego prosty system biologiczny 14 7 Klasyfikator oparty o maksymalizację AUC. 15 8 Dodatkowe artykuły powstałe w ramach pracy 16 3 1 Publikacje powstałe w ramach pracy 1. T. Calders and S. Jaroszewicz. Efficient AUC optimization for classification. In 11th European Conference on Principles and Practice of Knowledge Discovery in Databases (PKDD’07), pages 42–53, Warsaw, Poland, 2007. nagroda za najlepszy artykuł. 2. S. Jaroszewicz. Minimum variance associations — discovering relationships in numerical data. Praca wysłana, 2008. 3. S. Jaroszewicz, L. Ivantysynova, and T. Scheffer. Schema matching on streams with accuracy guarantees. Praca przyjęta do Intelligent Data Analysis Journal. 4. S. Jaroszewicz and M. Korzeń. Approximating representations for large numerical databases. W 7th SIAM International Conference on Data Mining (SDM’07), pages 521–526, Minneapolis, MN, 2007. 5. D.A. Simovici S. Jaroszewicz, T. Scheffer. Scalable pattern mining with bayesian networks as background knowledge. Praca wysłana. 6. S. Jaroszewicz. Cross-selling models for telecommunication services. Praca wysłana do JTIT. 7. J. Granat. Models and Algorithms for Event Mining. Proceedings of the 8th International Symposium on Knowledge and Systems Sciences, Japan Advanced Institute of Science and Technology, pp.53-58, 2007. Plenary talk. 2 Wstęp Systemy dynamiczne występują powszechnie we współczesnej technice i nauce. Przykładem mogą tu być sieci telekomunikacyjne, natężenie ruchu drogowego, a także procesy zachodzące w organizmach żywych (przedmiot analizy tzw. biologii systemowej). Analiza zachowania takich systemów ma więc bardzo duże znaczenie. Ilość danych opisujących zachowanie współczesnych systemów jest ogromna. Często nie jest możliwe nawet ich przechowywanie. Konieczne jest więc zastosowanie metodologii data mining. Istnieje wiele metod data mining pozwalających na analizę danych czasowych pochodzących z systemów dynamicznych. Metody te nie uwzględniają jednak dotychczasowej wiedzy o systemie, ani istniejących modeli matematycznych opisujących system. W niniejszej pracy opracowane zostały algorytmy omijające ten problem. Oparto się o metodologię opracowaną wcześniej przez jednego z autorów [14, 13]. Polaga ona na budowie modelu probabilistycznego, opisującego system. Opracowane algorytmy znajdują następnie zbiory atrybutów, których rozkład prawdopodobieństwa w danych odbiega od tego co przewiduje model. W niniejszej pracy metody te zostały dostosowane do systemów dynamicznych. W ramach pracy powstało kilka publikacji, a także szereg nowych wyników, które zostaną opublikowane w roku przyszłym. 4 W pracach [9, 16] (6, 5 powyżej) przedstawiono dalsze zastosowania i rozszerzenia metod z [14, 13] m.in. w problemie cross-sellingu usług telekomunikacyjnych. Opracowane ulepszenia poporawiły stabilność metod i ułatwiły ich zastosowania. W systemach dynamicznych często występują zmienne numeryczne. Algorytmy data mining działają jednak przede wszystkim na zmiennych dyskretnych. Aby możliwe było zastosowanie tych algorytmów do danych numerycznych (a co za tym idzie do szerokiej klasy systemów dynamicznych), konieczne było ich uogólnienie na dane numeryczne. Uogólnienia takie zostały przedstawione w pracach [10, 12] (4, 2 powyżej). Podejście przedstawione w [10] pozwala ponadto na uwzględnienie istniejącego opisu matematycznego modelu i znajdowania zbiorów atrybutów od niego odbiegających. Zostało to wykorzystane poniżej w analizie systemów biologicznych. Dodatkowo, wyniki z pracy [12] zostały wykorzystane w artykule [4] (1 powyżej) gdzie przedstawiono bardzo wydajną metodę budowy kalsyfiaktora maksymalizującego bezpośrednio pole pod krzywą ROC. Praca ta zdobyła nagrodę za najlepszy artykuł na europejskiej konferencji data miningowej. Dodatkowo w pracy [11] (3 powyżej) rozwinięto algorytm pozwalający na znajdowanie odpowiadających sobie atrybutów w różnych bazach danych. Z uwagi na możliwość zastosowania tego podejścia także do strumieni danych, praca ma znaczenie także dla analizy systemów dynamicznych. W artykule [7] przedstawiono usystematyzowanie podejść do modelowania z uwzględnieniem zdarzeń. Poniżej opisano pokrótce wyniki uzyskane w szeregu publikacji powstałych w ramach pracy, a także nieopublikowane nowe wyniki. 2.1 Notacja Wektory oznaczane będą małymi, wytłuszczonymi literami, a macierze wytłuszczonymi literami wielkimi. Wektory są wektorami wierszowymi, wektory kolumnowe oznaczane będą poprzez jawne użycie operacji transpozycji T . Indeksy górne będą oznaczały czas, a indeksy dolne współrzędne wektorów, np. π ti oznacza i-tą współrzędną wektora π w chwili t. Ponieważ w naszym przypadku, macierze nie zmieniają się w czasie, indeksy górne nad macierzami będą oznaczały potęgowanie, np. Pt oznacza macierz P podniesioną do potęgi t. 3 Analiza systemów z czasem dyskretnym Ogólne podejście będzie polegało na dostosowaniu metodologii z [14, 13]. Polega ona na interaktywnej budowie modelu opisującego badany system. Użytkownik dysponuje danymi opisującymi zachowanie systemu, a także wstępnym (być może pustym) modelem jego działania. Metodami data mining znajdowane są następnie zdarzenia, których prawdopodobieństwo wystąpienia w danych różni się w największym stopniu od tego co przewiduje model. Zastosowanie metodologii data mining pozwala na wyjście poza proste korelacje i analizowanie bardziej złożonych zależności. 5 3.1 Ukryte Modele Markowa (HMM) W niniejszym rozdziale opisana zostanie metoda znajdowania interesujących sekwencji czasowych. Zgodnie z zastosowaną metodologią potrzebny będzie model opisujący zachowanie systemu w czasie. Ponieważ rozważamy modele z czasem dyskretnym najlepszym narzędziem będą tu ukryte modele Markowa (HMM - Hidden Markov Models) [15]. Ukrytym modelem Markowa nazywamy piątkę < S, O, π 0 , P, E >, gdzie S = {s1 , . . . , sn } jest zbiorem stanów, O = {o1 , . . . , om } zbiorem symboli wyjściowych, π 0 = (π 01 , . . . , π 0n ) wektorem początkowych prawdopodobieństw stanów modelu, a P macierzą przejść, gdzie Pij oznacza prawdopodobieństwo przejścia ze stanu si do stanu sj . Ostatni element piątki, E jest macierzą prawdopodobieństw emisji, tak że Eij jest prawdopodobieństwem zaobserwowania na wyjściu symbolu oj , jeżeli model znajduje się w stanie si . Zauważmy, że wektor π t prawdopodobieństw stanu systemu w czasie t wyraża się wzorem π t = π 0 Pt . Podobnie πE jest wektorem prawdopodobieństw zaobserwowania poszczególnych symboli wyjściowych, jeżeli prawdopodobieństwa stanów modelu zadane są wektorem π. 3.2 Prawdopodobieństwo zaobserwowania danej sekwencji wyjściowej w ukrytym modelu Markowa Zdefiniujemy obecnie dwie wielkości pozwalające na obliczenie prawdopodobieństwa zaobserwowania danej sekwencji czasowej. Szczegóły znaleźć można w [15]. Niech Ot = o0 , o1 , . . . , ot będzie ciągiem symboli wyjściowych, i niech qt oznacza stan ukrytego modelu Markowa w czasie t. Prawdopodobieństwo wprzód jest zdefiniowane jako α(Ot , i) = Pr{o0 , . . . , ot , qt = si }, to znaczy jako prawdopodobieństwo, że model wyemituje sekwencję o0 , . . . , ot i znajdzie się w stanie si w czasie t. Oznaczmy α(Ot ) = (α(Ot , 1), α(Ot , 2), . . . , α(Ot , n)). Prawdopodobieństwo wystąpienia sekwencji Ot można wyznaczyć sumując elementy wektora α(Ot ). Niech Ot+1:T = ot+1 , ot+2 , . . . , oT będzie ciągiem symboli wyjściowych. Prawdopodobieństwo wstecz jest zdefiniowane jako β(Ot:T , i) = Pr{ot+1 , ot+2 , . . . , oT , qt = si }, to znaczy jako prawdopodobieństwo, że model znając się w czasie t w stanie si wyemituje sekwencję ot+1 , . . . , oT . Zauważmy, że w tym przypadku prawdopodobieństwo liczymy wstecz, od ostatniego wyemitowanego symbolu. Oznaczmy β(Ot:T ) = (β(Ot+1:T , 1), β(Ot+1:T , 2), . . . , β(Ot+1:T , n)) Prawdopodobieństwo wystąpienia sekwencji Ot można obliczyć jako π t β(Ot )T . 6 Ważną własnością wartości α i β jest możliwość ich łatwego uaktualniania na dłuższe sekwencje: α(o0 , . . . , ot , ot+1 , i) = α(o0 , . . . , ot )PEi,ot+1 n X t t+1 T β(o , o , . . . , o , i) = Pij Ej,ot β(ot+1 , . . . , oT , j). j=1 3.3 Interesujące sekwencje czasowe Zbiór danych D zawiera N sekwencji czasowych D = {O1 , . . . , ON }, t gdzie Oj = o0j , o1j , . . . , ojj . Niech O = o0 , o1 , . . . , ot będzie sekwencją symboli rozpoczynającą się w czasie t = 0. Oznaczmy przez PrHM M {O} prawdopodobieństwo wystąpienia sekwencji O obliczone na podstawie ukrytego modelu Markowa. Podobnie prawdopodobieństwo wystąpienia tej sekwencji w danych oznaczymy przez PrD {O} = |{O ′ ∈ D : O ′ zaczyna się od O}| . |D| Stopień w jakim O jest interesująca określamy, analogicznie do [14], następującym wzorem I(O) = PrD {O} − PrHM M {O} . (1) Schemat algorytmu znajdowania wszystkich sekwencji czasowych symboli spełniających warunek I(O) ≥ ε dla zadanego przez użytkownika progu ε przedstawiony jest na rys. 1 3.4 Znajdowanie często występujących sekwencji w danych Dzięki temu, że wszystkie sekwencje zaczynają się w czasie t = 0 znajdowanie wszystkich często powtarzających się sekwencji w danych jest proste. Na początku sekwencje są sortowane w porządku leksykograficznym. Następnie każdy rekord jest porównywany z poprzednim. Prefiksom należącym do części wspólnej zwiększamy częstość występowania o 1. Pozostałe prefiksy z poprzedniego rekordu nie mogą się już nigdy więcej pojawić, więc wystarczy sprawdzić czy ich częstość przekracza próg ε. 3.5 Znajdowanie często występujących sekwencji w ukrytym modelu Markowa Znajdowanie w ukrytym modelu Markowa wszystkich sekwencji o zadanym minimalnym prawdopodobieństwie zrealizowane zostało przez prostą modyfikację algorytmów znajdowania częstych kompleksów [2]. Algorytmy te opierają się na fakcie, że jeżeli prawdopodobieństwo danej sekwencji jest małe to prawdopodobieństwo jej przedłużeń jest jeszcze niższe więc można te przedłużenia pominąć. W istocie algorytm tu przedstawiany 7 Input: Ukryty model Markowa HM M , zbiór sekwencji czasowych D, ε - minimalna wartość określająca jak interesująca jest sekwencja Output: Zbiór sekwencji symboli {Oi : I(Oi ) ≥ ε} 1. Oszacuj parametry π 0 , P, E modelu HM M na podstawie danych D przy pomocy algorytmu Bauma-Welcha 2. Znajdź zbiór CD sekwencji występujących z dużym prawdopodobieństwem w danych CD = {O : PrD {O} ≥ ε} 3. Znajdź zbiór CHM M sekwencji dla których model HM M przewiduje występowanie z dużym prawdopodobieństwem CHM M = {O : PrHM M {O} ≥ ε} 4. Oblicz PrD {O} dla każdego O ∈ CHM M \ CD 5. Oblicz PrHM M {O} dla każdego O ∈ CD \ CHM M 6. Oblicz I(O) dla każdej sekwencji O ∈ CD ∪ CHM M Rysunek 1: Algorytm znajdowania interesujących sekwencji czasowych względem ukrytego modelu Markowa. jest wydajniejszy niż [2] gdyż obliczanie prawdopodobieństw w modelach Markowa jest szybsze niż w dużych bazach danych. Algorytm jest przedstawiony na rys. 2. W algorytmie korzystamy z prawdopodobieństw α. Analogiczny algorytm można zbudować na prawdopodobieństwach β, lecz okazał się on nieco mniej wydajny. 3.6 Szacowanie parametrów ukrytego modelu Markowa Szacowanie parametrów ukrytego modelu Markowa na podstawie danych, odbywa się przy pomocy algorytmu Bauma-Welcha [15, 18]. Algorytm ten jest jednym z przykładów klasy algorytmów zwanej expectation-maximization pozwalających na szacowanie ukrytych parametrów. Metoda przebiega następująco. Zaczynamy od ukrytego modelu Markowa z losowo wybranymi prawdopodobieństwami przejść i emisji i zakładamy, że prawdopodobieństwa te są poprawne. Na podstawie tych prawdopodobieństw i danych obliczamy oczekiwane nowe prawdopodobieństwa przejścia i emisji. Na przykład aby obliczyć prawdopodobieństwa przejścia korzystamy z wartości αt (o1 , . . . , ot , i)Pij Ei,ot+1 β(ot+2 , . . . , oT , j) X t (si , sj ) = Pr{qt = si ∧ qt+1 = sj } = P P . t+2 , . . . , oT , j) 1 t i j αt (o , . . . , o , i)Pij Ei,ot+1 β(o 8 Input: Ukryty model Markowa HM M , ε - minimalna wartość prawdopodobieństwa Output: Zbiór sekwencji symboli {Oi : PrHM M {Oi } ≥ ε} 1. funkcja FreqHMM(O, α(O)): P 2. Jeżeli i α(O, i) ≥ ε: 3. Dodaj O do zbioru wynikowego 4. Dla każdego symbolu o: 5. Oblicz α((O, o)) 6. Wywołaj FreqHMM((O, o), α((O, o))) 7. Wywołaj FreqHMM(∅, (1, 1, . . . , 1)) 8. Zwróć zbiór wynikowy Rysunek 2: Algorytm znajdowania sekwencji o dużym prawdopodobieństwie w ukrytych łańcuchach Markowa. Nowe prawdopodobieństwa przejścia oblicza się ze wzoru P t ′ t X (si , sj ) Pij = P P . t t j X (si , sj ) W podobny sposób można obliczyć nowe prawdopodobieństwa początkowe i prawdopodobieństwa emisji [15, 18]. Algorytm Bauma-Welcha zbiega do minimum lokalnego. Z doświadczeń praktycznych autora wynika jednak, że jeżeli początkowa macierz prawdopodobieństw emisji pozwala na wystarczająco dobre powiązanie emitowanych symboli ze stanami wewnętrznymi, algorytm szybko zbiega do minimum globalnego. W prezentowanym poniżej przykładzie, taka sytuacja miała miejsce. 4 Przykładowa aplikacja: analiza logów serwera WWW Instytutu Łączności W niniejszej części zostanie przedstawiona przykładowa aplikacja powyższego algorytmu do modelowania zachowań klientów odwiedzających stronę internetową Instytutu Łączności. 4.1 Preprocessing danych Uzyskaliśmy dostęp do logów systemowych za okres około jednego roku. Każda pozycja w logu zawiera szereg informacji takich jak data i czas zdarzenia, plik, którego ono dotyczyło, kod błędu itp. 9 0.386435 0.190324 _all_ 0.523659 0.992693 0.00730688 quit _all_sink Rysunek 3: Początkowy model HMM opisujący zachowanie odwiedzających stronę internetową Instytutu Łączności Ponieważ na serwerach instytutowych jest bardzo wiele dostępnych plików, model zawierałby bardzo dużą liczbę symboli. Aby tego uniknąć, jako symboli użyto tylko najwyższego katalogu z którego pobrano plik. Jest to celowe również dlatego, że bardziej przydatny wydaje się model, który podaje ogólną, zrozumiałą charakterykę zachowań. Dzięki logicznemu podziałowi zawartości stron Instytutu na podkatalogi takie jak czasopisma, struktura, itp. najwyższy poziom katalogów okazał się wystarczający. Wydaje się, że, jeżeli zaszłaby potrzeba bardziej szczegółowego modelowania, należałoby zbudować oddzielny model dla pewnego fragmentu stron Instytutu. Niestety log nie zawiera informacji o tym do której sesji dane zdarzenie należy. Konieczny był więc uprzedni podział na sesje. Istnieje kilka metod podziału [6, 17]. W pracy zdecydowano się na metodę uznawania zdarzeń oddalonych od siebie o mniej niż 30min za należące do jednej sesji. Mimo swojej prostoty metoda okazała się bardzo skuteczna. Inne metody, takie jak np. ograniczanie całkowitego czasu trwania sesji okazały się wadliwe, gdyż np. sesje niektórych robotów mogą trwać bardzo długo. Na końcu każdej sesji dodano również sztuczny symbol QUIT, tak aby możliwe było modelowanie zakończenia sesji. 4.2 Model początkowy Ponieważ na początku analizy nie było wiadomo jak powinien wyglądać model, badania rozpoczęto od modelu przedstawionego na rys. 3. Stan _all_ jest stanem, który może wyemitować każdy symbol występujący w logu. Stan quit może emitować wyłącznie symbol QUIT oznaczający koniec sesji. Model odpowiada losowemu poruszaniu się po stronach Instytutu. Każdy symbol ma zawsze stałe prawdopodobieństwo pojawienia się. W miarę dodawania nowych stanów, symbole są usuwane z listy symboli emitowanych 10 0.277904 0.116693 sophos2a 1 sophos2b 0.722096 0.0128473 sophos4a 0.985953 0.992693 1 sophos4b 0.258675 sophos_more 0.00730688 quit 0.00119974 _all_sink 0.741325 Rysunek 4: Fragment modelu opisujący łącznie z firewallem Sophos. przez stan _all_. Dzięki temu możliwe będzie lepsze określenie wewnętrznego stanu łańcucha Markowa na podstawie symbolu. Stanom wewnętrznym będzie można przypisać określone znaczenie, znacznie zwiększy się też szybkość szacowania parametrów modelu. Stan _all_sink, który w początkowym modelu jest niedostępny, będzie używany do modelowania niektórych sesji, w których po określonej początkowej sekwencji odwiedzona może być dowolna inna strona. Stan _all_ nie może spełniać tej roli, gdyż, jak już wspomniano, będą z niego usuwane symbole. 4.3 Etapy budowy modelu W niniejszej części krótko opiszemy interesujące sekwencje które zostały odkryte w czasie budowy modelu, a także zmiany w nim dokonywane poprawiające jego dopasowanie. Antywirus sophos. Pierwsze interesujące sekwencje dotyczyły programu antywirusowego sophos, którego aktualizacje są dostępne przez WWW. Pierwszą taką sekwencją była sophos,sophos której prawdopodobieństwo w danych wynosiło 11.48% podczas gdy model przewidywał tylko 1.17%. Podobna sytuacja dotyczyła sekwencji w której z katalogu sophos czytano cztery razy. Interesujące jest to, że każdy dostęp do katalogu sophos powodował pobranie albo dwóch albo czterech, albo większej liczby plików. Innymi słowy, ani razu (pomimo bardzo dużej ilości połączeń) nie zdarzyło się pobranie tylko jednego lub tylko trzech plików. Aby model poprawnie przewidywał prawdopodobieństwa korzystania z tego katalogu, został on uaktualniony przez dodanie fragmentu pokazanego na rys. 4. Każdy z dodanych stanów emituje jedynie symbol sophos. Dodatkowo, z listy symboli emitowanych przez stan _all_ symbol ten został usunięty. Należy zauważyć, że w celu dobrego modelowania rozkładu prawdopodobieństwa dla krótkich sekwencji, modelowany jest on przy pomocy ciągu kilku połączonych stanów. Metoda ta będzie często używana poniżej. Po dokonaniu opisanych zmian model dobrze przewidywał przebieg sesji korzystających z programu antywirusowego. Stopień w jakim są one interesujące zmalał i konieczne stało się modelowanie innych sesji. Czasopisma instytutowe. Kolejne interesujące zdarzenie dotyczyło katalogu czasopisma zawierającego artykuły opublikowane w czasopismach TiTI oraz JTIT w formacie PDF. Prawie 2% sesji zawierało sekwencję czasopisma,czasopisma,favicon.ico, której model w ogóle nie przewidywał. 11 0.455927 0.506849 0.335616 0.174907 0.0364742 czasopisma_1 favico 0.507599 0.218563 czasopisma_2 0.365269 0.958403 0.157534 0.344828 czasopisma_4 0.0415973 quit czasopisma_3 0.655172 0.416168 Rysunek 5: Fragment modelu opisujący łącznie z firewallem Sophos. Interpretacja tego zdarzenia nie była z początku oczywista. Okazało się, że /favicon.ico jest domyślną lokalizacją ikonki pojawiającej się po lewej stronie adresu strony w przeglądarce, a także w zakładkach. W przypadku strony Instytutu Łączności plik ten znajduje się w img/favicon.ico co jest zaznaczone w nagłówku strony głównej. Plik w formacie PDF nie zawiera jednak tej informacji, więc niektóre przeglądarki starają się pobrać ikonkę z domyślnej lokalizacji. Ponieważ jednak szukany plik się tam nie znajduje, prowadzi to do błędu HTTP. W celu uaktualnienia modelu tak, aby sesje korzystające z czasopism instytutowych były modelowane poprawnie, dodano fragmenty pokazane na rys. 5. Interesujące jest też dlaczego często pobierany był więcej niż jeden plik. Po inspekcji loga serwera okazało się, że często następował restart transmisji tego samego pliku. Nie udało się stwierdzić, czy był to skutek błędów, czy też np. celowego działania przeglądarki w celu przyspieszenia transmisji. 4.4 Inne interesujące sekwencje. W opisany wyżej sposób dokonywano kolejnych uaktualnień modelu. Do najbardziej interesujących należy część modelu odpowiedzialna za sesje zaczynające się od strony głównej Instytutu. Konieczne było tu modelowanie pobierania elementów strony takich jak arkusze stylów (CSS), procedury JavaScript, czy pliki graficzne (z katalogu img). Fragment ten jest częścią całego modelu pokazanego na rys. 6. Znaczącą liczbę sesji stanowią serwisy automatyczne, jak np. roboty przeglądarek internetowych. Można je rozpoznać po tym, że na początku sesji czytają plik robots.txt określający strony do których mają dostęp. Na podstawie prawdopodobieństwa startu w stanie robot_enter (patrz rys. 6) można stwierdzić, że prawie 10% sesji stanowią roboty. Ciekawe jest też, że około 5% sesji jest inicjowanych przez czytniki wiadomości, przede wszystkim Google reader. 4.5 Ostateczny model Ostatecznie uzyskany model pokazany jest na rys 6. Pomimo sporej ilości stanów, model ma prostą strukturę i jest w pełni zrozumiały. Mimo swojej prostoty model przewiduje prawdopodobieństwo wszystkich możliwych sekwencji stron z dokładnością lepszą niż 0.01. Możemy więc powiedzieć, że albo sekwencja jest dobrze modelowana, albo pojawia się tak rzadko, że nie ma ona większego znaczenia dla opisu zachowania odwiedzających. 12 0.277904 0.116693 sophos2a 1 sophos2b 0.722096 sophos4a 1 0.741325 sophos4b 0.258675 0.985953 0.0128473 sophos_more 0.00119974 0.416168 0.958403 czasopisma_2 0.365269 0.218563 0.507599 0.344828 0.335616 0.157534 0.174907 0.0364742 czasopisma_1 czasopisma_4 0.0415973 czasopisma_3 0.655172 favico 0.506849 0.455927 0.790598 0.224771 0.0579479 0.209402 confer_2 confer_1 0.775229 0.398524 0.82173 0.0720362 0.434023 proxy_wpad_1 0.0953639 proxy_wpad_2 0.167453 0.0829057 0.992693 0.00730688 0.0572136 0.0280358 0.0102458 0.622558 0.909549 0.94003 0.00520123 main_js 0.367851 0.105143 0.0667198 0.17918 0.45297 0.000819665 main_img _all_sink main_css 0.0489046 main 0.196602 0.0917065 0.0756972 robot_enter 0.486957 0.532609 0.55303 0.0228602 0.513043 coop 0.44697 robot_all_ 0.0217969 0.983928 0.467391 mail 0.0160721 0.0824373 0.917563 0.0680489 structure 0.568293 0.431707 0.68599 0.0619351 ogloszenia 0.820937 0.179063 0.0550239 0.31401 RSS_1 RSS_2 0.523659 0.386435 0.190324 _all_ 0.0899054 0.0415271 0.923644 0.0348292 _all_image Rysunek 6: Model HMM opisujący zachowanie odwiedzających stronę internetową Instytutu Łączności 13 quit 5 Reguły asocjacyjne dla atrybutów numerycznych W systemach dynamicznych bardzo często występują atrybuty numeryczne. Tradycyjne podejścia data mining nie radzą sobie dobrze z tego typu danymi, konieczna jest ich dyskretyzacja. Dyskretyzacja popwoduje jednak problemy, takie jak rozbicie pojedynczych zależności na wiele reguł, utratę informacji itp. Konieczne stało się więc uogólnienie stosowanych metod data mining na atrybuty numeryczne. Opracowane metody zostały dodatkowo wykorzystane w rozdziale 7. 5.1 Omówienie artykułów W ramach pracy powstały dwa artykułu dotyczące atrybutów numerycznych [12] i [10]. Praca [12] uogólnia pojęcie tzw. częstych kompleksów, t.j. często występujących wartości atrybutów na dane numeryczne. Główna idea polega na zastąpieniu koniunkcji binarnych atrybutów wielomianami. Podano odpowiednie uogólnienie pojęcia częstości występowania. Podejście to ma bardzo interesującą własność, że po znalezieniu wszystkich ‘często’ występujących wielomianów, możliwe jest przybliżenie sumy (po wszystkich rekordach bazy danych) wartości dowolnej funkcji, bez konieczności odwoływania się do oryginalnych danych. Jeżeli przybliżenie to jest wystarczająco dobre, daje to bardzo znaczne przyspieszenie dla algorytmów wymagających wielokrotnych iteracji na danych. W pracy przykładem takim było szacowanie parametrów modeli nieliniowych. W kolejnej pracy [10] przedstawiono metodę znajdowania zbiorów powiązanych atrybutów numerycznych. Związki między atrybutami nie muszą być liniowe. Metoda polega na znalezieniu funkcji danego zbioru atrybutów mającej małą wariancję na zbiorze uczącym. Bardziej formalnie, jeśli X1 , . . . , Xr jest zbiorem atrybutów numerycznych, aby znaleźć występujące między nimi zależności, szukamy funkcji f (X1 , . . . , Xr ), takiej aby P 2 D f była minimalna, gdzie sumowanie odbywa się po wszystkich rekordach zbioru uczącego. Aby P wyeliminować patologiczne przypadki takie jak f ≡ 0, wymagane jest dodatkowo aby D′ f 2 = 1 na pewnym zbiorze referencyjnym D′ . W pracy [10], zbiór referencyjny powstaje z oryginalnego zbioru poprzez założenie niezależności zmiennych, ale w praktyce dowolny inny zbiór może być użyty. Wykorzystano to w następnym rozdziale. 6 Przykładowe zastosowanie do układu równań opisującego prosty system biologiczny W niniejszym rozdziale przedstawione zostanie przykładowe zastosowanie metody opracowanej w [10] do analizy systemów biologicznych. Tzw. biologia systemowa jest nowym trendem w naukach biologicznych, polegającym na tworzeniu modeli symulujących fragmenty organizmów żywych. Stworzono język SBML do opisu takich systemów [1], a także oprogramowanie do ich symulacji. W pracy wykorzystano uproszczony model kinaz reagujących na sygnały zewnętrzne docierające do komórki (rys. 7a). Ponieważ nie były dostępne dane reprezentujące zachowanie rzeczywistej komórki, zdecydowano się na wykorzystanie danych generowanych sztucznie. Na początku wygenerowano dane na podstawie symulacji oryginalnego modelu. 14 a) b) Rysunek 7: Uproszczony system biologiczny opisujący zachowanie kinaz reagujących na sygnały dochodzące do komórki. Model poprawny a) służył do generowania zbioru uczącego, model zaburzony b) grał rolę niedoskonałej wiedzy z dziedziny. Dane te, Do , pełniły rolę danych zebranych z systemu rzeczywistego. Następnie usunięto jedno z oddziaływań występujących w modelu (rys. 7b). Zmieniony model odgrywał rolę niedoskonałej wiedzy o działaniu sustemu. Aby zastosować algorytm z pracy [10], zbiór Do wygenerowany z pełnego modelu został użyty jako zbiór referencyjny, a zbiór wygenerowany na podstawie modelu zmodyfikowanego jako zbiór uczący. Po uruchomieniu algorytmu, najbardziej interesująca okazała się para zmiennych MAPK i MAPKP, czyli właśnie te dwie zmienne, których interakcja została usunięta! Należy zaznaczyć, że korelacja tych zmiennych wyniosła tylko 0.25, więc najprawdopodobniej zostałaby ona przeoczona jeśli użyto by standardowej analizy regresyjnej. 7 Klasyfikator oparty o maksymalizację AUC. W przypadku wykrywania anomalii w sieciach telekomunikacyjnych problemem jest to, że mamy bardzo dużo przykładów negatywnych (brak anomalii) i tylko kilka uczących przykładów pozytywnych. Tradycyjne klasyfikatory nie radzą sobie z tego typu problemami. Rozwiązaniem jest zastosowanie klasyfikatora maksymalizującego nie dokładność, ale pole pod krzywą ROC. Poniżej krótko omówimy to pojęcie, bardziej szczegółowy opis można znaleźć w [8, 3]. Krzywe ROC. Standardową miarą oceny klasyfikatorów jest dokładność. Niestety dokładność nie daje pełnego obrazu sytuacji. Problemy pojawiają się gdy jedna z klas występuje bardzo rzadko np. w 1% przypadków. Klasyfikator, który zawsze przewiduje klasę większościową osiąga bardzo wysoką, 99% dokładność, będąc jednocześnie całkowicie bezużytecznym. Rozwiązaniem tego problemu jest pole pod krzywą ROC. Większość klasyfikatorów nie podaje jedynie do której klasy należy dany przykład, ale także wartość numeryczną określającą stopień przynależności do tej klasy. Aby uzyskać konkretny klasyfikator, należy ustalić próg powyżej którego uznamy, że dany przykład należy do konkretnej 15 klasy. Każdy punkt krzywej ROC odpowiada jednemu z takich progów. Współrzędną Y takiego punktu jest proporcja przykładów należących do danej klasy, które zostały też w ten sposób zaklasyfikowane, współrzędną X natomiast jest proporcja przykładów zaklasyfikowanych do danej klasy, które w rzeczywistości do niej nie należą [8, 3]. Najlepszą możliwą krzywą ROC jest krzywa przechodząca przez górny lewy róg układu współrzędnych. Jeżeli klasyfikator dokonuje wyboru klasy losowo, krzywa ROC jest przekątną łączącą punkty (0, 0) i (1, 1). Im wyżej krzywa przechodzi nad przekątną, tym lepszy klasyfikator. Aby uchwycić jakość klasyfikatora jedną wartością, stosuje się pole pod krzywą ROC (AUC - Area Under the Curve). Zauważmy, że w podanym wyżej przykładzie z rzadko występującą klasą, dla klasyfikatora większościowego, mającego bardzo dobrą dokładność, pole pod krzywą ROC wynosi zero. Naturalne wydaje się więc budowa klasyfikatorów maksymalizujących bezpośrednio pole pod krzywą ROC. Niestety zadanie to nie jest łatwe. Po pierwsze, obliczenie pola pod krzywą ROC wymaga sortowania jest więc niewydajne, a złożoność obliczenia gradientu jest wręcz kwadratowa względem liczby rekordów. W ramach niniejszej pracy powstał referat [4] (załącznony), w którym przedstawiono metodę bardzo wydajnej konstrukcji klasyfikatorów liniowych maksymalizujących pole pod krzywą ROC. Artykuł ten otrzymał na europejskiej konferencji data miningowej PKDD’07 nagrodę za najlepszy referat. Niestety brak jest rzeczywistych danych o anomaliach sieciowych. Dane dostępne w Instytucie Łączności wymagałyby ręcznego oznaczania anomalii przez administratorów, co jest niemożliwe. Dane dostępne publicznie zawierają sztucznie zawyżoną liczbę przykładów pozytywnych. Przedstawimy więc przykład skuteczności działania metody na publicznie dostępnych danych dotyczących eksperymentów fizycznych, w których sztucznie wprowadzono nierównowagę klas. Dla porównania, nauczono na tych samych danych dyskryminator liniowy. Wyniki pokazane są na rys. 8. Widać wyraźnie, że w przypadku dużej nierównowagi klas, bezpośrednia maksymalizacja pola pod krzywą ROC daje znacznie lepsze wyniki. Zostało to potwierdzone także przez innych autorów [5]. Więcej szczegółów i eksperymentów można znaleźć w pracy [4] w załączniku. 8 Dodatkowe artykuły powstałe w ramach pracy W niniejszym rozdziale opisanych zostaną pokrótce dwa dodatkowe artykuły powstałe w ramach pracy. Artykuł [11] opisuje wydajny algorytm służący do tzw. schema matching tj. automatycznego znajdowania odpowiadających sobie atrybutów w dwóch różnych tabelach bazodanowych. Problem ten występuje często w praktyce na przykład w trakcie łączenia się dużych firm. Przedstawiona metoda opiera się na próbkowaniu obu baz przy zapewnieniu gwarancji na jakość uzyskanych wyników. Druga praca to [16], rozszerzona wersja prac [14, 13] przeznaczona do druku w czasopiśmie. Zawiera ona między innymi nowe wyniki eksperymentalne. 16 Rysunek 8: Bezpośrednia maksymalizacja pola pod krzywą ROC (AUC) a standardowy klasyfikator liniowy. Literatura [1] Systems biology markup language. http://www.sbml.org. [2] R. Agrawal, T. Imielinski, and A. Swami. Mining association rules between sets of items in large databases. In ACM SIGMOD Conf. on Management of Data, pages 207–216, 1993. [3] A.P. Bradley. Use of the area under the ROC curve in the evaluation of machine learn ing algorithms. Pattern Recognition, 30(7):1145–1159, 1997. [4] T. Calders and S. Jaroszewicz. Efficient auc optimization for classification. In 11th European Conference on Principles and Practice of Knowledge Discovery in Databases (PKDD’07), pages 42–53, Warsaw, Poland, 2007. nagroda za najlepszy artykuł. [5] C. Cortes and M. Mohri. Auc optimization vs. error rate minimization. In Advances in Neural Information Processing Systems 16. MIT Press, 2004. 17 [6] M. H. Dunham. Data mining, introductory and advanced topics, part iii. http://engr.smu.edu/ mhd/dmbook/part3.ppt. [7] J. Granat. Models and algorithms for event mining. In Proceedings of the 8th International Symposium on Knowledge and Systems Sciences, pages 53–58, JAIST, November 2007. [8] J.A. Hanley and B.J. McNeil. The meaning and use of the area under a receiver operating characteris tic (ROC) curve. Radiology, 143(1):29–36, 1982. [9] S. Jaroszewicz. Cross-selling models for telecommunication services. Praca wysłana do JTIT. [10] S. Jaroszewicz. Minimum variance associations — discovering relationships in numerical data. In praca wysłana, 2008. [11] S. Jaroszewicz, L. Ivantysynova, and T. Scheffer. Schema matching on streams with accuracy guarantees. to appear in the Intelligent Data Analysis Journal. [12] S. Jaroszewicz and M. Korzeń. Approximating representations for large numerical databases. In 7th SIAM International Conference on Data Mining (SDM’07), pages 521–526, Minneapolis, MN, 2007. [13] S. Jaroszewicz and T. Scheffer. Fast discovery of unexpected patterns in data, relative to a bayesian network. In 11th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD 2005), pages 118–127, Chicago, IL, August 2005. [14] S. Jaroszewicz and D. Simovici. Interestingness of frequent itemsets using bayesian networks as background knowledge. In 10th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD 2004), pages 178–186, Seattle, WA, August 2004. [15] L. R. Rabiner. A tutorial on hidden markov models and selected applications in speech recognition. Proceedings of the IEEE, 77(2):257––286, February 1989. [16] D.A. Simovici S. Jaroszewicz, T. Scheffer. Scalable pattern mining with bayesian networks as background knowledge. praca wysłana. [17] D.J. Smith and J.E. Pricer. Sessionizing clickstream data. Teradata Magazine Online, http://www.teradata.com/t/page/116280/index.html. [18] L.R. Welch. Hidden markov models and the baum-welch algorithm. IEEE Information Theory Society Newsletter, 53(4):1,10–13, December 2003. 18