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