Eksploracja danych - Technologie Przetwarzania Danych
Transkrypt
Eksploracja danych - Technologie Przetwarzania Danych
Eksploracja danych 2 OLAP - weryfikacja hipotez Charakterystyka przetwarzania OLAP • Proces analizy jest sterowany przez użytkownika • Analiza danych sterowana zapytaniami • Analityk formułuje zapytania i dokonuje analizy danych zawartych w magazynie danych • OLAP stanowi rozszerzenie funkcjonalności baz danych o możliwość efektywnego przetwarzania złożonych zapytań zawierających agregaty Eksploracja danych Instytut Informatyki PP 2014/2015 Eksploracja danych 3 Eksploracja danych - odkrywanie hipotez Cele eksploracji danych Efektywne odkrywanie nietrywialnych, nieoczywistych, dotychczas nieznanych i potencjalnie użytecznych zależności i wzorców danych w dużych bazach danych • W przeciwieństwie do OLAP, eksploracja danych polega na automatycznej analizie danych i automatycznym odkrywaniu hipotez dotyczących otaczającego nas świata. Instytut Informatyki PP 2014/2015 Eksploracja danych 4 Zastosowania eksploracji danych • Analizy rynku i zarządzanie o Marketing bezpośredni (poprawne adresowanie oferty sprzedaży), zarządzanie relacjami z klientami, analiza koszyka zakupów, sprzedaż wiązana (ang. cross selling) (ustalanie przyszłych zakupów klientów na podstawie historii ich zakupów), segmentacja rynku (definiowanie homogenicznych grup klientów) • Analiza ryzyka i zarządzanie o Prognozowanie (planowanie budżetu, przepływów gotówki), utrzymanie klienta (wykrywanie niepożądanych sekwencji zdarzeń), ubezpieczenia (klasyfikacja klientów), kredyty, kontrola jakości, analiza konkurencyjności (monitorowanie konkurentów i trendów rynkowych, ustalanie strategii cenowej) • Wykrywanie oszustw o Ubezpieczenia (wyłudzenia), kredyty, przelewy pieniędzy (pranie brudnych pieniędzy), ochrona zdrowia (wyłudzanie refinansowania leków i świadczeń medycznych), telekomunikacja (definiowanie modelu oszustw) • Eksploracja tekstów o Dokumenty, poczta elektroniczna, grupy dyskusyjne • Analiza sieci WWW o Preferencje użytkowników, skuteczność reklam • Analiza danych naukowych o DNA, wyniki obserwacji astronomicznych, dane medyczne Instytut Informatyki PP 2014/2015 Eksploracja danych 5 Elementy procesu eksploracji danych • Wyselekcjonowanie w operacyjnych bazach danych właściwego zbioru danych • Czyszczenie i wstępne przetwarzanie danych • Redukcja i transformacja danych • Wybór odpowiednich metod eksploracji danych o Uogólnianie, klasyfikacja, regresja, asocjacje, grupowanie, itp. • Wybór algorytmów eksploracji • Eksploracja danych: szukanie interesujących wzorców i zależności • Prezentacja odkrytej wiedzy o Wizualizacja, transformacja, usuwanie reduntanych wzorców i zależności • Zastosowanie odkrytej wiedzy Eksploracja danych 6 Metody eksploracji danych • Odkrywanie generalizacji − Generalizacja cech pacjentów odpornych na dany sposób leczenia • Odkrywanie asocjacji − Szukanie zależności między wynikami badań pacjentów • Odkrywanie wzorców sekwencji − Analiza przebiegów leczenia • Odkrywanie klasyfikacji − Rokowanie leczenia pacjentów • Grupowanie na podstawie podobieństw − Szukanie różnych przebiegów historii danej choroby • Odkrywanie podobieństw w przebiegach czasowych − Analiza historii chorób • Wykrywanie zmian i odchyleń − Szukanie nietypowych reakcji na leki Instytut Informatyki PP 2014/2015 Eksploracja danych 7 Odkrywanie asocjacji Wyszukiwanie asocjacji w bazie danych ma na celu odkrycie: Instytut Informatyki PP 2014/2015 Eksploracja danych 8 Koncepcja odkrywania asocjacji Dane są: • I={i1, i2, ..., in} – zbiór obiektów • często powtarzających się wzorców, • Transakcja T: zbiór obiektów takich, że T⊆ I • zależności i korelacji między danymi, • Baza danych D: zbiór transakcji • związków przyczynowo-skutkowych Odkrywanie asocjacji jest stosowane w: • analizie koszyka zakupów • Transakcja T zawiera X, gdzie X ⊆ I, jeżeli X ⊆ T • Reguła asocjacyjna: implikacja postaci X ⇒ Y, gdzie X, Y ⊆ I • projektowania katalogów transakcja i1 i2 i3 i4 • planowania akcji promocyjnych 100 T F F T F • odkrywania zależności katalogów historii choroby 101 F F T F F 102 T F F F F Forma reguł asocjacji: Ciało reguły → głowa reguły czyli: … in Znajdź wszystkie reguły, które korelują jeden podzbiór I z innym podzbiorem I. A1∧...∧Ak → Ak+1∧...∧An lub w krótszej postaci: Przykład: A1,...,Ak → Ak+1,...,An gdzie: Ai są wartościami atrybutów danych. Przykład: Zakup(‘farba’) → Zakup(‘pędzel’) Instytut Informatyki PP 2014/2015 Zbiór I jest zbiorem typów towarów sprzedawanych w sklepie, a transakcje reprezentują zakupy poszczególnych klientów sklepu. Przykładem odkrytej reguły może być: 80% wszystkich klientów, którzy kupili felgi aluminiowe, kupili też nowe opony. Instytut Informatyki PP 2014/2015 Eksploracja danych 9 Eksploracja danych 10 Miary jakości reguł asocjacyjnych Inne miary jakości Wsparcie s(X→Y) (ang. support) reprezentuje ważność reguły i jest prawdopodobieństwem, że pojedyncza transakcja zawiera zbiory obiektów X i Y. Miary wsparcia i ufności w pewnych sytuacjach nie są wystarczające. Poniższa reguła ma względnie wysokie wsparcie i ufność: Ufność c(X→Y) (ang. confidence) reprezentuje siłę reguły i jest warunkowym prawdopodobieństwem, że transakcja, która zawiera zbiór X, zawiera również zbiór Y. sup(!wino→ →piwo) = 60%, conf(!wino→ →piwo) = 100% Zbiór wszystkich zakupów zakup felg sup(wino→ →piwo) = 20% conf(wino→ →piwo) = 50% Jednak negacja powyższej reguły ma znacznie wyższe wsparcie i ufność: Miara korelacji - Lift: zakup opon Znajdź wszystkie reguły X → Y takie, dla których wsparcie i ufność są większe od pewnych zadanych wartości. Przykład: Lift ( X → Y ) = conf ( X → Y ) sup( X ) Lift ( X → Y ) = P( X ∩ Y ) P ( X ) ∗ P(Y ) Lift = 1 – zdarzenia niezależne Lift > 1 – zdarzenia skorelowane Lift < 1 - zdarzenia ujemnie skorelowane lift (wino→ →piwo) = 0,625 Znajdź reguły o minimalnym wsparciu 50% i minimalnej ufności 50%. Transakcja 100 200 300 400 Zakupy A, B, C, D A, B D, E A, E A⇒B [s=50%,c=67%] B⇒A [s=50%,c=100%] Instytut Informatyki PP 2014/2015 Instytut Informatyki PP 2014/2015 Eksploracja danych 11 Eksploracja danych Klasyfikacja reguł asocjacyjnych Naiwny algorytm szukania asocjacji • Ze względu na typ danych: logiczne i ilościowe zakup(‘felgi’) ⇒ zakup(‘opony’) dochód(>250 000) ⇒ zakup(‘Mercedes S500’) • Ze względu na wymiarowość danych: jednowymiarowe i wielowymiarowe zakup(‘felgi’) ⇒ zakup(‘opony’) wiek(20..25) ∧ zajęcie(‘student’) ⇒ zakup(‘Notebook’) • Ze względu na poziom abstrakcji danych: jedno i wielopoziomowe zakup(‘piwo’) ⇒ zakup(‘orzeszki’) zakup(‘alkohole’) ⇒ zakup(‘towary spożywcze’) 12 Generowanie i weryfikacja wszystkich kombinacji wejściowego zbioru obiektów. ZnajdźRegułyAsocjacyjne () n:=liczba obiektów w zbiorze I; for (i:=1; i:=i+1; i<=n) do wygeneruj wszystkie i-elementowe podzbiory ze zbioru I; wyznacz w bazie danych wsparcie dla każdego uzyskanego podzbioru; dla każdego podzbioru o wymaganym wsparciu wygeneruj reguły asocjacyjne spełniające wymagany poziom ufności; end; end; Złożoność obliczeniowa powyższego algorytmu wynosi: n ∗ 2n * |T| 1) Na przykład dla 1000 obiektów i 1 000 000 transakcji w bazie danych algorytm składa się w przybliżeniu z: 1,07*10310 kroków. 1 Instytut Informatyki PP 2014/2015 Dla reguł ograniczonych do postaci: X1 X2… Xn -> Y Instytut Informatyki PP 2014/2015 Eksploracja danych 13 Eksploracja danych Zbiory częste Algorytm Apriori Zbiory częste to podzbiory zbioru obiektów I o wsparciu większym niż określona przez użytkownika wartość minimalna. transakcja 100 200 300 400 obiekty A, B, D A, C A, D B, E, F 14 Idea: Zbiory o k elementach, które są generowane na podstawie zbiorów częstych o k-1 elementach. minimalne wsparcie=50% zbiory częste wsparcie {A} 75% {B} 50% {D} 50% { A, D } 50% wsparcie(A) = 75%; wsparcie(D) = 50% wsparcie({A, D}) = 50% Obserwacja: Każdy podzbiór zbioru częstego musi być zbiorem częstym ZnajdźRegułyAsocjacyjne(minS, minC) CK: zbiory kandydujące o rozmiarze k LK: zbiory częste o rozmiarze k L1= {jednoelementowe zbiory częste} for (k=1; |LK| > 1; k++) do CK+1 = zbiory kandydujące wygenerowane ze zbioru LK for each transakcji t w bazie danych do zwiększ liczniki dla wszystkich kandydatów ze zbioru CK+1 zawartych w t LK+1 = kandydaci ze zbioru CK+1 o wsparciu >= minS end return ∪K LK end Na przykład: • Zbiór {A,C} nie może być zbiorem częstym, bo podzbiór {C} nie jest zbiorem częstym. • Zbiór {B,D} może (ale nie musi) być zbiorem częstym, bo wszystkie jego podzbiory: {B} i {D} są częste. Instytut Informatyki PP 2014/2015 Eksploracja danych 15 Generowanie kandydatów na zbiory częste Zbiory kandydujące generowane są za pomocą dwóch kroków: • join – generuj zbiory kandydujące CK przez łączenie elementów zbioru LK-1 insert into CK select p.item1,p.item2,...,p.itemk-1,q.itemk-1 from LK-1 p, LK-1 q where p.item1=q.item1,...,p.itemk-2=q.itemk-2, p.itemk-1 < q.itemk-1 • prune – usuń z powstałego zbioru elementy, których podzbiory nie należą do zbiorów częstych LK forall elementów c in CK do forall (k-1) podzbiorów s zbioru c do if (s is not in LK-1) then delete c from CK end Instytut Informatyki PP 2014/2015 Eksploracja danych Przykład działania algorytmu Apriori Zadane wsparcie s=50% Baza da- xxxxxx zbiory s xxxx zbiory s nych tid obiekty C1 {1} 2 L1 {1} 2 {2} 3 {2} 3 100 1,3,4 → → 200 2,3,5 {3} 3 scan DB {3} 3 300 1,2,3,5 {4} 1 {5} 3 400 2,5 {5} 3 L2 zbiory {1,3} {2,3} {2,5} {3,5} Join& prune C3 Przykład L3={abc, abd, acd, ace, bcd} Połączenie zwrotne: L3 z L3 o abcd z połączenia abc i abd o acde z połączenia acd i ace Okrojenie: o acde zostanie usunięte ponieważ podzbioru ade nie ma w zbiorze L3 Wynik: C4={abcd} 16 s 2 2 3 2 zbiory xxxxxxx zbiory s xxxxx C2 {1,2} 1 C2 {1,2} {1,3} 2 {1,3} ← ← Join& {1,5} 1 scan DB {1,5} prune {2,3} 2 {2,3} {2,5} 3 {2,5} {3,5} 3 {3,5} zbiory {2,3,5} → L3 scan DB zbiory {2,3,5} s 2 Wynikiem działania algorytmu Apriori jest suma zbiorów: L1∪L2∪L3 Znalezione zależności (zadany poziom ufności c=75%): 1→3, 3→1, 2→3, 3→2, 2→5, 5→2, 3→5, 5→3, 23→5, 25→3, 35→2, 5→23, 3→25, 2→35 Instytut Informatyki PP 2014/2015 Instytut Informatyki PP 2014/2015 Eksploracja danych 17 Eksploracja danych 18 Ograniczenia metody Apriori FP-drzewa • Kosztowna operacja generowania kandydatów Generowane zbiory kandydatów mogą być bardzo duże: Na przykład dla |Li|=104 może zostać wygenerowany zbiór kandydatów |CI+1| =107 • Potrzeba wielokrotnego skanowania bazy danych dla wyznaczania liczników zbiorów kandydatów Dla znalezienia zbiorów o liczebności n elementów potrzebne jest n+1 operacji skanowania całej bazy danych (ang. Frequent Pattern Tree) Organizacja FP-drzewa służy zwiększeniu wydajności wyszukiwania asocjacji. FP-drzewo jest reprezentacją bazy danych zawierającą tylko obiekty częste. Niewielki rozmiar FP-drzewa ogranicza liczbę operacji dyskowych. Ponadto organizacja drzewa pozwala uniknąć kosztownych kroków generacji kandydatów. Konstrukcja FP-drzewa wymaga dwukrotnego skanowania bazy danych: 1. Wstępne skanowanie bazy danych w celu znalezienia wszystkich jedno-elementowych zbiorów częstych. Znalezione zbiory są umieszczane w pomocniczej tabeli definiującej porządek tych zbiorów ze względu na częstość wystąpień. 2. Kolejne skanowanie bazy danych, w celu konstrukcji FP-drzewa. Instytut Informatyki PP 2014/2015 Eksploracja danych 19 Konstruowanie FP-drzewa 1. Utwórz listę elementów częstych 1.1. Skanuj bazę danych dla określenia wsparcia dla wszystkich elementów transakcji; 1.2. Utwórz listę wszystkich elementów uporządkowaną malejąco ze względu na poziom wsparcia; 1.3. Usuń z utworzonej listy elementy z poziomem wsparcia niższym niż zadany (uzyskana lista jest częścią składową FP-drzewa); 2. Konstruuj FP-drzewo 2.1. Utwórz korzeń FP-drzewa 2.2. Dla każdej transakcji // Powtórnie skanuj bazę danych 2.2.1. Usuń z transakcji wszystkie elementy nieczęste; 2.2.2. Sortuj pozostałe elementy ze względu na częstość; 2.2.3. Dodaj je do FP-drzewa; Instytut Informatyki PP 2014/2015 Eksploracja danych 20 Przykład konstrukcji FP-drzewa Dana jest baza danych: TID 100 200 300 400 500 obiekty {f, a, c, d, g, i, m, p} {a, b, c, f, l, m, o} {b, f, h, j, o} {b, c, k, s, p} {a, f, c, e, l, p, m, n} Po pierwszym skanowaniu zostaje ustalony zbiór obiektów częstych (wsparciemin=0,5) i utworzona pomocnicza tabela. obiekt f c a b m p częstość 4 4 3 3 3 3 wskaźnik Podczas drugiego skanowania odczytywane są tylko transakcje zawierające obiekty częste. Obiekty częste danej transakcji są porządkowane ze względu na częstość pamiętaną w tabeli pomocniczej. Instytut Informatyki PP 2014/2015 Instytut Informatyki PP 2014/2015 Eksploracja danych 21 Eksploracja danych Przykład FP-drzewa c.d. TID 100 200 300 400 500 22 Przykład FP-drzewa c.d. Finalny stan FP-drzewa po wczytaniu wszystkich transakcji jest następujący: uporządkowane obiekty częste {f, c, a, m, p} {f, c, a, b, m} {f, b} {c, b, p} {f, c, a, m, p} {} obiekt częstość wskaźnik Dla każdej nowej sekwencji uporządkowanych obiektów w transakcji dodawane są nowe gałęzie w FP-drzewie. W sekwencjach już występujących w FP-drzewie zwiększane są liczniki w węzłach drzewa. Po odczytaniu pierwszej transakcji kształt drzewa jest następujący. f c a b m p 4 4 3 3 3 3 c:1 f:4 c:3 b:1 a:3 b:1 p:1 m:2 b:1 p:2 m:1 {} obiekt częstość wskaźnik f c a b m p 4 4 3 3 3 3 f:1 FP-drzewo zawiera kompletną informację niezbędną do znalezienia wszystkich asocjacji ze źródłowej bazy danych. Mniejszy rozmiar niż źródłowa baza danych gwarantuje bardziej wydajne przetwarzanie. c:1 a:1 m:1 p:1 Instytut Informatyki PP 2014/2015 Eksploracja danych 23 Szukanie asocjacji za pomocą FP-drzew Dane FP-drzewo fp i zadane wsparcie s Instytut Informatyki PP 2014/2015 Eksploracja danych 24 Wizualizacja reguł asocjacji DBMiner Procedure fptree_mining(fp, s) for each element e tablicy fp zaczynając od końca tablicy do zbuduj zbiór wzorców warunkowych ze wszystkich prefiksów e; wszystkim elementom prefiksu przypisz wsparcie danego wystąpienia e; zbuduj warunkowe drzewo fpc wstawiając do niego elementy ze wszystkich wzorców warunkowych o wsparciu większym niż s; if fpc jest pojedynczą ścieżką then wygeneruj wszystkie wzorce częste; else wywołaj rekurencyjnie fptree_mining(fpc,s); end; Item Wzorce warunkowe Drzewa warunkowe p {(fcam:2), (cb:1)} {(c:3)}|p m {(fca:2), (fcab:1)} {(f:3, c:3, a:3)}|m b {(fca:1), (f:1), (c:1)} Empty a {(fc:3)} {(f:3, c:3)}|a c {(f:3)} {(f:3)}|c f Empty Empty Generowanie reguł asocjacyjnych Item p m a c FPtree_cond {(c:3)}|p {(f:3, c:3, a:3)}|m {(f:3, c:3)}|a {(f:3)}|c asocjacje {cp} {fm, cm, am, fcm, fam, cam, fcam {fa, ca, fca} {fc} Instytut Informatyki PP 2014/2015 Instytut Informatyki PP 2014/2015 Eksploracja danych 25 Eksploracja danych Klasyfikacja 26 Proces klasyfikacji Konstrukcja modelu Definicja problemu • Dany zbiór predefiniowanych klas i ich etykiet. • Dany zbiór danych treningowych. Każda z danych przynależy do jednej z klas ze względu na wartość atrybutu równego jednej z etykiet klas. Klasyfikacja polega na określeniu na podstawie zbioru treningowego zbioru cech (innych niż etykieta klasy) decydujących o przynależności danych do jednej z klas. Wynikiem klasyfikacji jest model (klasyfikator) w formie: zbioru reguł, drzewa decyzji lub formuł matematycznych. Model ten jest wykorzystywany do klasyfikacji obiektów o nieznanej przynależności do klasy. Czasami dodatkowym krokiem jest testowanie trafności przewidywania uzyskanego modelu na zbiorze danych testowych. marka Opel BMW Opel BMW VW … wiek wiek ryzyko samochodu kierowcy zielony 5 40 Niskie czarny 15 29 Wysokie czerwony 7 50 Niskie czarny 2 52 Wysokie Biały 16 50 Wysokie kolor Dane treningowe Model Typowe zastosowania • Udzielanie kredytów • Ustalanie stawki ubezpieczenia Klasyfikacj IF marka = ‘BMW’ OR wiek < 22 or (wiek_sam > 15 and wiek_k > 50) THEN ryzyko = ‘wysokie’ • Diagnozy medyczne • Marketing celowy Instytut Informatyki PP 2014/2015 Eksploracja danych 27 Proces klasyfikacji Weryfikacja modelu marka Ford Honda Opel BMW VW … wiek wiek ryzyko samochodu kierowcy granatowy 2 32 Niskie srebrna 2 29 Wysokie beżowy 4 37 Niskie czarny 10 19 Wysokie Biały 16 50 Niskie kolor Dane testowe Instytut Informatyki PP 2014/2015 Eksploracja danych 28 Prognoza na podstawie uzyskanego modelu marka Ford kolor biały wiek wiek samochodu kierowcy 16 51 ryzyko ? Nowe dane Model Model ryzyko Niskie Niskie Niskie Wysokie Wysokie Instytut Informatyki PP 2014/2015 wysokie IF marka = ‘BMW’ OR wiek < 22 or (wiek_sam > 15 and wiek_k > 50) THEN ryzyko = ‘wysokie’ Instytut Informatyki PP 2014/2015 Eksploracja danych 29 Techniki klasyfikacji Eksploracja danych 30 Przygotowanie danych do klasyfikacji • Drzewa decyzji • Klasyfikator Bayes’a • Klasyfikator k-NN • Sieci neuronowe • Algorytmy genetyczne • Zbiory przybliżone Kryteria oceny metod klasyfikacji • Dokładność – procent poprawnie sklasyfikowanych danych do wszystkich danych wejściowych • Efektywność – procesów budowania i stosowania klasyfikatora • Odporność – odporność klasyfikatora na niekompletność i niepoprawność danych wejściowych Czyszczenie danych – wstępne przetworzenie danych w celu redukcji lub całkowitego usunięcia szumów w zbiorze danych treningowych. Analiza ważności atrybutów – w celu znalezienia atrybutów nieprzydatnych w procesie klasyfikacji, to jest: a) atrybutów o zbyt dużej liczbie różnych wartości, b) atrybutów nieróżnicujących danych ze względu na przynależność do zdefiniowanych klas. Transformacja danych – obejmująca usunięcie nieistotnych lub mało istotnych atrybutów oraz generalizację atrybutów o zbyt dużej liczbie wartości, jeżeli są dla nich zdefiniowane reguły generalizacji. Instytut Informatyki PP 2014/2015 Eksploracja danych 31 Drzewa decyzji Drzewo decyzji jest strukturą hierarchiczną zdefiniowaną następująco: • węzły wewnętrzne drzewa reprezentują warunki logiczne odwołujące się do atrybutów danych; • krawędzie reprezentują wynik oszacowania tych warunków; • liście zawierają etykiety klas. Instytut Informatyki PP 2014/2015 Eksploracja danych 32 Konstrukcja drzewa decyzji Dany zbiór treningowy: y y1 wiek kierowcy młody N N N N N N N N x stary x1 marka wysokie N T T T T BMW Ford Wygenerowane drzewo decyzji: wiek samochodu wysokie stary wysokie x < x1 nowy niskie Klasyfikacja nieznanych danych polega na testowaniu wartości atrybutów danych według reguł zdefiniowanych w węzłach drzewa. Proces klasyfikacji przebiega wzdłuż ścieżki biegnącej od korzenia drzewa do liścia reprezentującego klasę danej. tak nie y < y1 N tak nie N T (wiek=51, marka = Ford, wiek_sam = 16) ⇒ wysokie Instytut Informatyki PP 2014/2015 Instytut Informatyki PP 2014/2015 Eksploracja danych 33 Konstrukcja drzewa decyzji Eksploracja danych 34 Wybór atrybutu decyzyjnego Celem działania algorytmu (ID3 - Iterative Dichotomiser) jest podział wejściowego zbioru treningowego na podzbiory danych o wspólnych cechach i należących do tej samej klasy. GenerateDT(Dane, Atrybuty) -- Dane – zbiór danych treningowych -- Atrybuty – lista atrybutów (1) utwórz nowy węzeł N; (2) if (wszystkie Dane należą do tej samej klasy C) (3) then return N jako liść z etykietą C; (4) if (lista Atrybuty jest pusta) then (5) return N jako liść z etykietą klasy dominującej w zbiorze Dane; (6) wybierz atrybut_decyzyjny a z listy Atrybuty; (7) użyj a jako etykiety węzła N; (8) for each (wartości ai atrybutu a) (9) wstaw krawędź wychodzącą z N z warunkiem a = ai; (10)si := dane ze zbioru Dane, dla których a = ai; (11)if (si jest puste) then (12) dołącz do krawędzi liść z o największej liczbie danych; (13)else (14) dołącz do krawędzi węzeł zwrócony przez wywołanie: GenerateDT(si, Atrybuty - a); (15)end GenerateDT; Sposób wyboru atrybutu decyzyjnego dla kolejnego kroku algorytmu konstrukcji drzewa ma wpływ na liczbę węzłów i wysokość drzewa, czyli w efekcie na rozmiar zbioru reguł decyzyjnych. Przykład: Marka Wiek_kierowcy BMW 18..29 BMW 30..50 Ford 30..50 Ford 18..29 Klasa Niebezpieczny Bezpieczny Bezpieczny Niebezpieczny Wybór atrybutu wiek wiek 18..29 30..50 marka wiek klasa BMW 18..29 N Ford 18..29 N marka wiek klasa BMW 30..50 B Ford 30..50 B Wybór atrybutu marka marka BMW Ford marka wiek klasa BMW 18..29 N BMW 30..50 B marka wiek klasa Ford 30..50 B Ford 18..29 N Instytut Informatyki PP 2014/2015 Eksploracja danych 35 Instytut Informatyki PP 2014/2015 Eksploracja danych 36 Kryteria optymalizacji drzew decyzyjnych Miara przyrostu informacji (redukcji entropii) Dla każdego atrybutu wyznacz wartość miary jakości podziału. Następnie wybierz atrybut optymalizujący wybrana miarę. Przykładowe miary lokalne: Miara przyrostu informacji (redukcji entropii) preferuje atrybuty, które lepiej porządkują dane ze względu na wartości etykiety klasy. (Najgorszym atrybutem względem tej miary będzie klucz podstawowy, najlepszym etykieta klasy.) Miara informacji Lokalne • przyrost informacji (information measure) (ID3, C4.5, See5), • współczynnik przyrostu informacji (gain ratio) • stopień zróżnicowania danych (indeks Gini) (CART, SPRINT) • tablice wielodzielcze - testy χ2 (CHAID) Globalne Konstruuj wszystkie potencjalne drzewa decyzji i dla każdego drzewa wyznacz wartość miary jakości drzewa. Wybierz drzewo optymalne. Przykładowe miary globalne: Niech m będzie liczbą klas, a si liczbą danych treningowych należących do klasy i. Miarą informacji niezbędnej do sklasyfikowania pojedynczej danej w zbiorze s=s1+…+sm jest: m I ( s1, s2 ,..., sm ) = − ∑ pi log 2 ( pi ) i =1 gdzie pi jest prawdopodobieństwem, że dowolnie wybrana dana należy do klasy Ci. Prawdopodobieństwo to jest oszacowane na podstawie rozkładu danych treningowych jako: pi=si/s. • liczba węzłów drzewa, • średnia długość ścieżki, • średnie prawdopodobieństwo błędu Instytut Informatyki PP 2014/2015 Instytut Informatyki PP 2014/2015 Eksploracja danych 37 Niech dany atrybut A ma n różnych wartości. Atrybut A będzie podstawą podziału zbioru danych treningowych w n podzbiorów o tej samej wartości atrybutu A. Niech sij będzie liczbą wystąpień klasy Ci w podzbiorze Sj. Miarą informacji niezbędnej do sklasyfikowania pojedynczej danej w zbiorze danych treningowych po ich podziale względem atrybutu A jest: E ( A) = n s + ... + s mj 1j ∑ j =1 s I ( s1 j ,..., smj ) Miara informacji dla pojedynczego podzbioru Sj jest równa: m I ( s1 j ,..., smj ) = − ∑ pij log 2 ( pij ) i =1 Eksploracja danych 38 Przykład Dany zbiór treningowy: Marka Wiek_kierowcy BMW 18..29 BMW 30..50 Ford 30..50 Ford 18..29 Klasa Niebezpieczny Bezpieczny Bezpieczny Niebezpieczny Miara informacji treningowego zbioru danych: I(s1,s2) = I(2,2) = -1/2*log2(1/2) - 1/2*log2(1/2) = 1 Podział danych ze względu na markę samochodu: Marka(BMW) s11=1, s21=1, I(s11,s21) = 1 gdzie: pij=sij/sj. Marka(Ford) s12=1, s22=1, I(s12,s22) = 1 Przyrost informacji uzyskany przez podział zbioru danych ze względu na atrybut decyzyjny A wynosi: E(Marka)=2/4* I(s11,s21)+2/4* I(s12,s22) = 1 Gain(Marka)= I(s1,s2) - E(Marka) = 0 Podział danych ze względu na wiek kierowcy: Gain(A) = I(s1, s2, …, sm) – E(A) Wiek (18..29): s11=2, s21=0, I(s11,s21) = 0 Przyrost informacji jest nazywany również redukcją entropii. Wiek (30..50): s12=0, s22=2, I(s12,s22) = 0 E(wiek)=2/4* I(s11,s21)+2/4* I(s12,s22) = 0 Gain(wiek)= I(s1,s2) - E(wiek) = 1 Atrybutem maksymalizującym przyrost informacji jest atrybut wiek. (przejście z pełnego chaosu (1) do całkowitego porządku (0)) Instytut Informatyki PP 2014/2015 Eksploracja danych 39 Indeks Giniego Inną miarą optymalizującą wybór atrybutu do podziału zbioru treningowego jest indeks (współczynnik) Giniego. Indeks Giniego jest miarą nierównomierności rozkładu danego zbioru wartości. Jeżeli zbiór danych treningowych s należy do n klas, i jeżeli pi opisuje prawdopodobieństwo, że dowolnie wybrana dana należy do klasy Ci, to indeks Giniego dla zbioru S jest zdefiniowany następująco: n gini ( s ) = 1 − ∑ p i2 i =1 Indeks Giniego dla podzbiorów zdefiniowanych przez różne wartości atrybutu A jest równy: gini A m s ( s ) = ∑ i gini (s i ) i =1 s Polepszenie rozkładu danych treningowych w wyniku ich podziału ze względu na atrybut A wynosi: ∆ gini ( A ) = gini ( s ) − gini A ( s ) Atrybut o najmniejszym indeksie giniA(s), czyli taki który maksymalizuje ∆gini(A), jest wybierany do podziału danego wierzchołka drzewa decyzji. Instytut Informatyki PP 2014/2015 Instytut Informatyki PP 2014/2015 Eksploracja danych 40 Przykład Dany zbiór treningowy: Marka Wiek_kierowcy BMW 18..29 BMW 30..50 Ford 30..50 Ford 18..29 Klasa Niebezpieczny Bezpieczny Bezpieczny Niebezpieczny Indeks Giniego dla zbioru danych treningowych jest równy: gini(s) = 1 – (1/2)2 – (1/2)2 = ½ Indeks Giniego dla poszczególnych atrybutów jest równy: ginimarka(s)=1/2*(1-(1/2)2–(1/2)2)+1/2*(1-(1/2)2–(1/2)2)=1/2 giniwiek(s)=1/2*(1-12–02)+1/2*(1-02–12)=0 Indeks Giniego dla atrybutu wiek jest mniejszy od indeksu Giniego atrybutu marka, stąd to atrybut wiek zostanie wybrany jako wierzchołek w drzewie decyzji. Wybór atrybutu marka nie polepsza rozkładu danych treningowych: ∆gini(marka) = 1/2 – 1/2 = 0 Instytut Informatyki PP 2014/2015 Eksploracja danych 41 Przycinanie drzewa Mało liczne podzbiory danych treningowych w liściach drzewa decyzyjnego mogą być wynikiem anomalii danych treningowych: szumów i wyjątków. Przycinanie drzewa (ang. tree pruning) ma na celu usunięcia z drzewa takich anomalii w celu: • uzyskania bardziej zwartej reprezentacji wiedzy; • przyśpieszenia procesu klasyfikacji; • polepszenia jakości klasyfikacji. Eksploracja danych 42 Generowanie reguł z drzewa decyzyjnego Wiedza składowana w drzewie decyzji może być wyekstrahowana i przedstawiona w postaci reguł IF-THEN. Dla każdej kompletnej ścieżki drzewa (to jest prowadzącej od korzenia do liścia) generowana jest jedna reguła. Pary węzeł – krawędź są reprezentowane przez proste wyrażenia logiczne. Etykiety liści reprezentują wartość całego wyrażenia. Przykład: Stosowane są dwie strategie przycinania: wiek • Wstępne przycinanie (prepruning) – polega na unikaniu tworzenia liści ze zbyt małą liczbą danych treningowych. Kiedy podział węzła generuje podzbiory danych różniące się znacznie rozmiarami i mniej liczebne podzbiory zawierają jedynie pojedyncze dane, proces podziału jest zatrzymywany. Niepodzielonemu węzłowi nadaje się etykietę klasy najliczniejszego podzbioru danych. 18..29 30..50 marka niebezpieczny BMW Ford niebezpieczny bezpieczny • Końcowe przycinanie (postpruning) – polega na usuwaniu ze skonstruowanego drzewa liści (bądź całych gałęzi) o małej liczebności danych treningowych. Węzły wewnętrzne, którym odcięto liście same stają się liśćmi. Przypisywana jest im etykieta najliczniejszej populacji danych. IF wiek between 18 and 29 THEN niebezpieczny IF wiek between 30 and 50 AND marka = BMW THEN niebezpieczny IF wiek between 30 and 50 AND marka = Ford THEN bezpieczny Instytut Informatyki PP 2014/2015 Instytut Informatyki PP 2014/2015 Eksploracja danych 43 Eksploracja danych 44 Klasyfikator Bayes’a Naiwny klasyfikator Bayes’a Klasyfikator Bayes’a jest klasyfikatorem statystycznym, który umożliwia określania prawdopodobieństwa, że dana należy do określonej klasy. Sposób wyliczania tego prawdopodobieństwa opiera się na twierdzeniu Bayes’a. Niech każda dana X będzie opisana przez n-wymiarowy wektor X=(x1, x2, …, xn). Dane należą do zbioru m klas: C1, C2,…, Cm. Nieznana dana X zostanie przypisana za pomocą klasyfikatora Bayes’a do klasy Ci wtedy i tylko wtedy, gdy: Niech X będzie daną o nieznanej etykiecie klasy, a Ci jedną klas. W procesie klasyfikacji danej X chcemy określić prawdopodobieństwo warunkowe P(Ci| X), że dana X należy do klasy Ci. Jest to tak zwane prawdopodobieństwo a posteriori opierające się na znajomości wartości danej X. Z kolei P(Ci) jest prawdopodobieństwem a priori, to jest prawdopodobieństwem, że dowolna dana (niezależnie od jej wartości) należy do klasy Ci. Analogicznie P(X | Ci) jest prawdopodobieństwem a posteriori, że dana przynależąca do klasy Ci będzie miała wartości X, natomiast P(X) jest prawdopodobieństwem a priori, że dana o nieznanej przynależności do klasy będzie miała wartość X. Twierdzenie Bayes’a pozwala wykorzystać do szacowania prawdopodobieństwa warunkowego - prawdopodobieństwa a priori i a posteriori: P(Ci | X ) = P(Ci| X) > P(Cj| X) dla każdego 1≤j≤m, j≠i. Ponieważ prawdopodobieństwo P(X) jest stałe dla wszystkich klas, przypisanie klasy danej X będzie polegało na znalezieniu maksymalnej wartości dla wyrażeń: P(X | Ci) ∗ P(Ci) Model klasyfikacji oparty na klasyfikatorze Bayes’a wymaga oszacowania dla wszystkich klas prawdopodobieństw P(X|Ci) i P(Ci) na podstawie zbioru danych treningowych. Prawdopodobieństwa P(Ci) będą szacowane jako: P(Ci) = si/s, gdzie: si jest liczbą danych treningowych należących do klasy i, a s jest liczbą wszystkich danych. P( X | Ci ) P(Ci ) P( X ) Prawdopodobieństwa P(Ci) i P(X | Ci) mogą być oszacowane na podstawie treningowego zbioru danych. Instytut Informatyki PP 2014/2015 Instytut Informatyki PP 2014/2015 Eksploracja danych 45 Eksploracja danych Naiwny klasyfikator Bayes’a ? ? Przykład Ile danych potrzeba dla oszacowania prawdopodobieństw P(X|Ci)? Ile prawdopodobieństw warunkowych aposteriori składa się na model? Niech liczba atrybutów danych n = 10, a liczby różnych wartości każdego z atrybutów też będą równe 10. Minimalna liczba danych treningowych niezbędna dla wyznaczenia prawdopodobieństw warunkowych musiałaby zawierać wszystkie możliwe kombinacje wartości poszczególnych atrybutów wynosi: 1010 !!! Definicja naiwnego klasyfikatora Bayes’a zakłada, że atrybuty danych są wzajemnie niezależne. Dla naiwnego klasyfikatora Bayes’a prawdopodobieństwa P(X|Ci) są szacowane według wzoru: P( X | Ci ) = 46 n ∏ P( xk | Ci ) k =1 Prawdopodobieństwa P(xk|Ci) będą szacowane na podstawie danych treningowych, z zależności: P(xk|Ci) = sik/si gdzie: sik jest liczbą danych należących do klasy Ci i przyjmujących dla atrybutu k wartość xk, a si jest liczbą wszystkich danych należących do klasy Ci. Dany zbiór treningowy: Wiek młody średni stary młody stary Przystojny bardzo średnio wcale wcale średnio Kandydat na męża zły dobry zły dobry dobry Model: Prawdopodobieństwa apriori: P(zły) = 2/5 = 0,40 P(dobry) = 3/5 = 0,60 Wiek P(młody|zły) = 1/2 = 0,50 P(młody|dobry) = 1/3 = 0,33 P(średni|zły) = 0/2 = 0 P(średni|dobry) = 1/3 = 0,33 P(stary|zły) = 1/2 = 0,5 P(stary|dobry) = 1/3 = 0,33 Przystojny P(bardzo|zły) = 1/2 = 0,50 P(bardzo|dobry) = 0/3 = 0 P(średnio|zły) = 0/2 = 0 P(średnio|dobry) = 2/3 = 0,67 P(wcale|zły) = 1/2 = 0,5 P(wcale|dobry) = 1/3 = 0,33 Dana o nieznanej klasie przynależności X=(średni,wcale) P(X|zły) = P(średni|zły) * P(wcale|zły) = 0 * 0,5 = 0 P(X|dobry) = P(średni|dobry) * P(wcale|dobry) = = 0,33 * 0,33 = 0,11 P(X|zły) * P(zły) = 0 * 0,4 = 0 P(X|dobry) * P(dobry) = 0,11 * 0,6 = 0,07 Wynik klasyfikacji: X=(średni,wcale) → dobry Instytut Informatyki PP 2014/2015 Eksploracja danych 47 K - najbliższych sąsiadów (K-NN) Metoda ta nie generuje modelu klasyfikacji. Metoda dla danych o nieznanej przynależności do klasy przegląda cały treningowy zbiór danych, szukając w nim danych o zbliżonej charakterystyce. Dane ze zbioru treningowego są traktowane jako wektory w znormalizowanej przestrzeni wielowymiarowej. Wymiary odpowiadają poszczególnym atrybutom danych. Podobieństwo danych zdefiniowane jest za pomocą funkcji odległości w przestrzeni wielowymiarowej. Klasyfikowanej danej przypisywana jest klasa dominująca w zbiorze najbliższych jej k danych treningowych. y T T T T N N N 48 Szukanie najbliższego sąsiada (NN) za pomocą indeksów wielowymiarowych Indeksy stosujące podział przestrzeni (pliki kratowe, kddrzewa, kdB-drzewa, hB-drzewa, quad-drzewa) charakteryzują się znacznym pokryciem pustej przestrzeni. Kształt regionów nie odzwierciedla rozkładu danych. Region zawierający punkt zapytania nie musi zawierać najbliższego sąsiada. N N N Eksploracja danych ∆yNN N N Instytut Informatyki PP 2014/2015 punkt zapytania ∆xNN X N x Po znalezieniu NN w regionie zawierającym punkt zapytania należy zweryfikować dla każdego wymiaru, czy odległość punktu zapytania od NN w regionie, jest większa niż odległość punktu zapytania od odpowiednich powierzchni regionu. Jeżeli tak, należy przejrzeć regiony przylegające do każdej takiej powierzchni. Można pominąć regiony, których najbliższy punkt jest położony dalej od punktu zapytania niż najdalszy punkt innego przyległego regionu. Instytut Informatyki PP 2014/2015 Instytut Informatyki PP 2014/2015 Eksploracja danych 49 Szukanie najbliższego sąsiada (NN) za pomocą R-drzew Złe wiadomości: 1. Ponieważ w R-drzewach regiony MBR mogą się pokrywać, więc może istnieć wiele regionów zawierających punkt zapytania. 2. Nie istnieje relacja przylegania regionów. Dobre wiadomości: W R-drzewach kształt regionów MBR lepiej odzwierciedla rozkład zawartych w nim danych. Eksploracja danych 50 Metryki regionów MBR Dla danego punktu P=(p1, p2, …, pn) i regionu R=(S,T), gdzie: S=(s1, …, sn) i T=(t1, …, tn) i si≤ ti dla 1 ≤ i ≤ n. MinDist(P,R) metryka optymistyczna (najlepszy przypadek) - reprezentuje minimalną odległość od punktu P, w której może się znaleźć najbliższy z obiektów przestrzennych pokrytych przez region R. Dla dowolnego punktu P i regionu MBR R, który pokrywa zbiór obiektów O={oi}: ∀oi∈O MinDist(P,R)≤||(P,oi)||, gdzie: ||(P,o)|| jest odległością między punktem P i obiektem przestrzennym o. Własność regionów MBR R-drzew Każda powierzchnia (odcinki w 2-d, prostokąty w 3d, prostopadłościany k-1 wymiarowe w k-d) regionu MBR, na dowolnym poziomie R-drzewa, zawiera, co najmniej jeden punkt indeksowanych obiektów przestrzennych bazy danych. Własność tę można wykorzystać dla optymalizacji wyszukiwania NN. n MinDist(P,R) = ∑ |pi−ri|2 i =1 gdzie: { ri = si jeżeli pi < si; ti jeżeli pi > ti; pi w pozostałych przypadkach. R ? ? ? P MinDist(P,R) ? Instytut Informatyki PP 2014/2015 Eksploracja danych 51 Instytut Informatyki PP 2014/2015 Eksploracja danych 52 Metryki regionów MBR Optymalizacja szukania NN MinMaxDist(P,R) metryka pesymistyczna (najgorszy przypadek) - reprezentuje odległość od punktu P, w Metryki MinDist i MinMaxDist są używane do porządkowania i ograniczania zbioru regionów MBR i skojarzonych z nimi węzłów indeksu w celu minimalizacji liczby odczytywanych bloków indeksu. której musi się znaleźć choć jeden z obiektów przestrzennych pokrywanych przez region R. Dla dowolnego punktu P i regionu MBR R, który pokrywa zbiór obiektów O={oi}: ∃oi∈O MinMaxDist(P,R)≤||(P,oi)||. n MinMaxDist(P,R)= min (|pk−rmk|2+ ∑ |pi−rMi|2) 1≤k≤n i =1;i ≠ k gdzie: sk jeżeli pk ≤ (sk+tk)/2; { { rmk = tk w przeciwnym wypadku. si jeżeli pi ≥ (si+ti)/2; rMi = R ? ti w przeciwnym wypadku. ? P ? MinMaxDist(P,R) ? Instytut Informatyki PP 2014/2015 Porządkowanie Węzły indeksu mogą być odczytywane w kolejności odpowiadającej ich porządkowi utworzonemu ze względu na jedną ze zdefiniowanych metryk. M11 P M1 M12 M21 M2 M22 MinDist(P,M1) < MinDist(P,M2) Ograniczanie 1. Ze zbioru regionów MBR należy usunąć takie regiony M, dla których istnieje region M’ taki, że MinDist(P,M) > MinMaxDist(P,M’). Nie mogą one zawierać NN. 2. Usuń znaleziony obiekt o, dla którego odległość od punktu P jest większa od MinMaxDist(P,M), ponieważ region M zawiera obiekty, który są bliższe punktowi P. 3. Ze zbioru regionów MBR należy usunąć takie regiony MBR - M, dla których MinDist(P,M) jest większy od odległości między P i znalezionym już punktem o. Regiony takie nie mogą zawierać NN. Instytut Informatyki PP 2014/2015 Eksploracja danych 53 Algorytm szukania NN w R-drzewach NearestNeighborSearch(Node, Point, Nearest) NODE newNode BRANCH_ARRAY branchList integer dist,last,i // Na poziomie liści – oblicz odległości do obiektów If Node.type=LEAF Then For i:=l to Node.count dist:=objectDIST(Point,Node.branchListi.rect) If(dist<Nearest.dist) Nearest.dist:=dist Nearest.rect:=Node.branchListi.rect // Na poziomach pośrednich - porządkuj, eliminuj i czytaj węzły Else // Generuj listę aktywnych gałęzi ABL genBranchList(Point,Node,branchList) // Sortuj ABL odpowiednio do wartości metryk sortBranchList(branchList) // Eliminuj gałęzie za pomocą reguły 1 (może wszystkie) last=pruneBranchList(Node,Point,Nearest, branchList) // Wykonaj iterację po liście ABL For i:=l to last newNode := Node.branchbranchListi // Rekurencyjnie odczytuj węzły potomne nearestNeighborSearch(newNode,Point,Nearest) // Eliminuj za pomocą reguł 2 i 3 last:=pruneBranchList(Node,Point,Nearest, branchList) End procedure Eksploracja danych 54 Grupowanie (ang. clustering) (Analiza skupień) Grupa (ang. cluster) to kolekcja danych: podobnych do siebie wewnątrz danej grupy, a niepodobnych do danych w innych grupach. Grupowanie polega na podziale wejściowego zbioru danych w grupy. Wynikiem grupowania może być również odkrycie danych nienależących do żadnej z grup. Kryterium łączenia danych w grupę jest dana funkcja podobieństwa. Liczba i charakter grup jest ustalana w trakcie analizy. Dobre metody grupowania tworzą zwarte i rozłączne grupy (o ile takie istnieją) - o dużym podobieństwie danych wewnątrz grup i niewielkim podobieństwie danych między grupami. Atrybut B Wyjątek Grupa 2 Grupa 1 Wyjątek Atrybut A Łatwa adaptacja do znajdowania k-NN Instytut Informatyki PP 2014/2015 Eksploracja danych 55 Definicje grup • Zbiory „podobnych” obiektów • Zbiory takich obiektów w przestrzeni wielowymiarowej, że odległości między obiektami wewnątrz grupy są mniejsze niż odległości między obiektami grupy z obiektami innych grup. Instytut Informatyki PP 2014/2015 Eksploracja danych 56 Definicja problemu Dane są: o Zbiór N obiektów, każdy jest określony wektorem wartości o takiej samej liczbie wymiarów o Funkcja odległości/gęstości (podobieństwa) o Funkcja oceny jakości grupowania – warunek stopu dla algorytmu grupującego Problem: Podzielić zbiór obiektów na grupy na podstawie odległości (podobieństwa), które optymalizują funkcję jakości. Funkcja odległości d obiektów x i y powinna posiadać następujące własności: • d(x,y) ≥ 0 • Spójny obszar przestrzeni wielowymiarowej charakteryzujący się dużą gęstością obiektów. • d(x,x) = 0 • d(x,y) = d(y,x) • d(x,y) ≤ d(x,z) + d(z,y) Instytut Informatyki PP 2014/2015 Instytut Informatyki PP 2014/2015 Eksploracja danych 57 Proces grupowania Eksploracja danych 58 Typowe zastosowania • Ustalenie reprezentacji obiektów – selekcja i transformacja atrybutów, normalizacja wymiarów • Marketing - odkrywanie grup klientów o podobnych zachowaniach • Zdefiniowanie miary odległości/podobieństwa między obiektami w zależności od typów atrybutów obiektów: numeryczne, kategoryczne, tekstowe • Pożyczki i ubezpieczenia: definiowanie nowych klas klientów • Przetwarzanie obrazów – reprezentacja obiektów jako punktów w przestrzeni wielowymiarowej • Wybór algorytmu grupującego • Systemy GIS: przestrzenne grupowanie obiektów • Proces grupowania obiektów • Znajdowanie charakterystyki grup: generalizacja średnie, obiekt środkowy, reguły asocjacyjne • Grupowanie dokumentów tekstowych dla przyśpieszenia ich kontekstowego wyszukiwania • WWW: o Klasyfikacja dokumentów o Odkrywaniu wzorców zachowań użytkowników sieci • Astronomia obiektów – wyszukiwanie nowych typów • Medycyna – szukanie klas pacjentów Instytut Informatyki PP 2014/2015 Eksploracja danych 59 Podobieństwo danych Typową miarą podobieństwa jest odległość między danymi w przestrzeni wielowymiarowej. Może to być przestrzeń metryczna z numerycznymi atrybutami danych. Wielowymiarowa przestrzeń metryczna powinna być znormalizowana. Popularne miary odległości przestrzeni metrycznej: • euklidesowska (L2 norm) d (i, j ) = (| xi1 − x j1 |2 + | xi 2 − x j 2 |2 +...+ | xip − x jp |2 ) • miejska (L1 norm) d (i, j ) = (| xi1 − x j1 | + | xi 2 − x j 2 | +...+ | xip − x jp | • maksymalna (L∞ norm) d (i, j ) = max (| xk − yk |) k Instytut Informatyki PP 2014/2015 Eksploracja danych 60 Miary odległości w przestrzeni niemetrycznej Miary odległości stosowane w przestrzeni, w której dziedziny niektórych wymiarów zawierają wartości nienumeryczne. • Miara (index) Jaccarda – dla dwóch punktów X i Y w przestrzeni wielowymiarowej, odległość oparta na mierze Jaccarda jest równa: X IY dJI ( X , Y ) = 1 − X UY Na przykład, odległość dla punktów X i Y: X = <21, kobieta, wolny, Poznań, student> Y = <25, mężczyzna, wolny, Poznań, pracownik> wynosi: dJI(X,Y) = 1 - 2/8 = 0,75. • Odległość edycji – dla dwóch łańcuchów symboli jest minimalna liczbą operacji insert i delete, które pozwolą przekształcić jeden łańcuch w drugi. • Minkowskiego d (i, j ) = q (| xi1 − x j1 |q + | xi 2 − x j 2 |q +...+ | xip − x jp |q ) • centrum Dla dwóch łańcuchów x i y o długościach |x| i |y| odległość edycji wynosi: dE(x,y)=|x|+|y|-2*|LCS(x,y)| d (i, j ) = (| xi1 |2 + | xi 2 |2 +...) + (| x j1 |2 + | x j 2 |2 +...) gdzie: i= (xi1, xi2, …, xip) i j= (xj1, xj2, …, xjp) są dwoma p-wymiarowymi obiektami. Instytut Informatyki PP 2014/2015 gdzie LCS(x,y) jest najdłuższym wspólnym łańcuchem symboli zawartym w łańcuchach x i y. Na przykład, niech x='abcdefg', y='bcefh'. Wtedy: LCS(x,y) = ‘bcef’. dE(x,y) = 7 + 5 – 2 * 4 = 4 Instytut Informatyki PP 2014/2015 Eksploracja danych 61 Miara podobieństwa dokumentów tekstowych Eksploracja danych 62 Pliki odwrócone Dokumenty tekstowe mogą być reprezentowane jako Nwymiarowe wektory, gdzie N jest liczbą słów występujących w danym słowniku. Wektory mogą być mapami bitowymi: 1 oznacza występowanie, a 0 brak danego słowa w dokumencie; lub wektorami liczbowymi, gdzie wartości reprezentują liczbę wystąpień danego słowa w tekście. Pliki (indeksy) odwrócone (ang. inverted files) są specyficznym rodzajem indeksów pomocniczych (ang. secondary indices) zakładanych na poszczególnych słowach tekstów. Pliki odwrócone są używane do wydajnej implementacji rzadkich wielowymiarowych wektorów reprezentujących teksty. Słownik Przykład: Listy wskaźników Baza tekstów Abisynia Słownik obejmuje cztery słowa: MS = <algorytmy, analizy , metody, grupowanie> … Wektor liczbowy reprezentujący tekst: Algorytmy analizy skupień dzieli się na szereg kategorii: Większość metod analizy skupień to metody iteracyjne, wśród których najczęściej używane to metody kombinatoryczne: aglomeracyjne i deglomeracyjne. jest równy: <1, 2, 2, 0 > Miara kosinusowa równa kosinusowi kąta między wektorami x i y reprezentującymi dwa teksty odzwierciedla ich podobieństwo: x Dcos ( x, y ) = xo y x∗ y α y Żegota Różne rozszerzenia i wariacje: • • • • liczniki częstości występowania słów; pomijanie słów pospolitych; listy synonimów w słowniku; uproszczony indeks (ang. coarse index) dwupoziomowy Glimps adresuje zbiory tekstów (mniej i krótsze wskaźniki); rozmiar indeksu jest równy 2-4% wielkości bazy danych tekstów Instytut Informatyki PP 2014/2015 Eksploracja danych 63 Podstawowe metody grupowania 1. Algorytmy hierarchiczne (ang. hierarchical algorithms) Łączenie obiektów w hierarchie (metodą top-down lub bottom-up) na podstawie zadanego zbioru kryteriów. Przecięcie uzyskanej hierarchii na określonej wysokości definiuje zbiór grup. 2. Algorytmy podziału (ang. partitioning algorithms) Konstrukcja podziału bazy danych zawierającej N obiektów na k grup. Reprezentacja grup poprzez środki ciężkości grup lub wybranego obiektu grupy. Obiekty są dołączane do grup na podstawie podobieństwa do reprezentacji grupy. 3. Algorytmy rozkładu gęstości (ang. density-based algorithms) Instytut Informatyki PP 2014/2015 Eksploracja danych 64 Algorytmy hierarchiczne • Aglomeracyjne - sekwencyjne łączenie obiektów w grupy. W pierwszym kroku tworzone są grupy jednoelementowe. W następnych łączone są po dwie najbliższe grupy, aż wszystkie obiekty znajdą się w jednej grupie. • Podziałowe – sekwencyjny podział grup obiektów. W pierwszym kroku grupę tworzą wszystkie obiekty. W następnych grupy dzielone są na mniejsze, aż wszystkie obiekty znajdą się w osobnych grupach. W wyniku działania powyższych algorytmów powstaje drzewo grup zwane dendrogramem. A C B D F Grupy są tworzone ze zbiorów sąsiednich obiektów charakteryzujących się dużą gęstością. Kształt grup w przestrzeni wielowymiarowej może być zróżnicowany. E G A B C D E F G Dendrogram pozwala wyznaczyć podział wejściowego zbioru obiektów na określoną liczbę grup. Instytut Informatyki PP 2014/2015 Instytut Informatyki PP 2014/2015 Eksploracja danych 65 Miary odległości między grupami obiektów Eksploracja danych 66 Aglomeracyjny algorytm grupowania hierarchicznego Dane są: • dwie grupy Ci i Cj; • których liczebność wynosi odpowiednio: ni i nj; • wartości średnie obiektów należących do grup są równe odpowiednio mi i mj; • ||p-p’|| jest odległością między punktami p i p’. Odległość minimalna: d min (Ci , C j ) = min p − p' max p − p' p∈Ci , p '∈C j Odległość maksymalna: d max (Ci , C j ) = p∈Ci , p '∈C j Odległość średnia: d mean (Ci , C j ) = mi − m j Średnia z odległości: d avg (Ci , C j ) = 1 ∑ ∑ p − p' ni ∗ n j p∈C p '∈C i j Dane: Zbiór X obiektów {x1,...,xn} Funkcja odległości: dis(c1,c2) Grupuj(X) do // utwórz grupy jednoelementowe for i = 1 to n ci = {xi}; end for; // utwórz zbiór wszystkich grup C = {c1,...,cn}; l = n + 1; // dodawaj do niego kolejne łączone grupy while (C.size > 1) do // znajdź dwie najbliższe sobie grupy (cmin1,cmin2)= min_dist(ci,cj) for all ci,cj in C; remove cmin1 and cmin2 from C; // dodaj ich sumę do zbioru grup add cl={cmin1,cmin2} to C; l = l + 1; end while; end; Instytut Informatyki PP 2014/2015 Eksploracja danych 67 Algorytm podziału - K-means Instytut Informatyki PP 2014/2015 Eksploracja danych 68 Algorytm podziału - K-means Dane kryterium optymalizacyjne - najmniejszych kwadratów E(C,DB), gdzie C jest zbiorem grup, a DB bazą danych, oraz dana jest funkcja odległości d(i,j). Algorytm: Iterative Improvement Kryterium optymalizacyjne może dotyczyć odchyleń wewnątrz grup (dla zapewnienia spoistości grup) lub odchyleń między grupami (dla zapewnienia rozłączności grup). Wyjście: zbiór k grup minimalizujący kryterium optymalizacyjne Miara odchyleń wewnętrznych grup jest sumą kwadratów odległości obiektów od środków grup rj dla wszystkich grup: k wc(C ) = ∑ wc(C j ) = j=1 k ∑ ∑ d ( x(i ), r j )2 j =1 x (i )∈C j Miara odchyleń zewnętrznych grup jest sumą kwadratów odległości środków wszystkich par grup. bc(C ) = k ∑ d (ri , r j )2 1≤i≤ j≤ k Miarą jakości grupowania jest stosunek: bc(C)/wc(C). Instytut Informatyki PP 2014/2015 Wejście: k liczba grup, DB baza danych zawierająca n obiektów K-means (k, DB(n)) { // arbitralnie wybierz k obiektów na centra grup; do l=1 { // iteruj po kolejnych podziałach do i = 1..n { // skanuj bazę danych znajdź grupę j, dla której d(oi, mj) jest minimalne; // gdzie mj jest środkiem grupy przydziel obiekt oi do grupy j; } do j=1..k { mj = mean(j); // mj są nowymi środkami grupy } l := l + 1; } while (E(Cl-1,DB) < E(Cl-2,DB)) Instytut Informatyki PP 2014/2015 Eksploracja danych 69 Eksploracja danych Algorytm K-means 70 Algorytm K-medoids Modyfikacja algorytmu K-means dla zapewnienia lepszej odporności na szumy i wyjątki. Przykład k=2, n=7 y y • W algorytmie K-means reprezentacją grupy jest punkt m, dla którego wartości poszczególnych składowych są średnią składowych wszystkich punktów w grupie. realokacja → n ∑ xij x m(m1, m2, …, ml) takie, że: mi = x gdzie: j =1 n l - jest liczbą wymiarów, n - liczbą obiektów w bazie danych, Własności: • Dokładna dla sferycznych grup danych • Złożoność obliczeniowa algorytmu: O(nkl) - właściwa dla małych i średnich baz danych • W algorytmie K-medoids reprezentacją grupy jest obiekt m, który jest najbardziej centralnie ulokowanym obiektem grupy (mediana). • Ograniczeniem jest konieczność wstępnego określenia liczby grup • Słabo radzi sobie z szumem i wyjątkami Instytut Informatyki PP 2014/2015 Eksploracja danych 71 Metody grupowania k-medoids Instytut Informatyki PP 2014/2015 Eksploracja danych 72 Eksploracja sieci Web • Algorytm PAM (Partitioning Around Medoids) Podstawowe metody • CLARA (Clustering LARge Applications) • Eksploracja zawartości sieci o Wyszukiwanie zawartości stron WWW o Grupowanie stron o Klasyfikacja stron Ogólna idea algorytmu PAM: • Losowo wybierz k obiektów jako medoidów • Przydziel pozostałe obiekty do grup na podstawie ich odległości od medoidów • Iteracyjne szukanie lepszych medoidów o Dla każdej pary obiektów oi medoid i oj nie-medoid wyznacz koszt przeniesienia medoidu o Jeżeli koszt zamiany jest mniejszy niż zero, przenieś medoid z obiektu oi na obiekt oj Ponownie redystrybuuj obiekty nie będące medoidami Własności algorytmu PAM • Lepsza jakość grupowania od algorytmów k-means przy występowaniu szumu i punktów oddalonych • Większa złożoność wykluczająca grupowanie dużych zbiorów obiektów Metoda CLARA jest modyfikacją algorytmu PAM dla dużych zbiorów danych. Właściwy algorytm PAM jest stosowany dla losowo wybranej próbki danych. Instytut Informatyki PP 2014/2015 • Eksploracja połączeń sieci o Ranking wyników wyszukiwania o Znajdowanie lustrzanych stron WWW • Eksploracja korzystania z sieci o Eksploracja logów: projektowanie stron WWW, personalizacja usług, monitorowanie wydajności Zastosowania • Przeszukiwanie zasobów WWW – ranking stron • Handel elektroniczny – grupowanie, klasyfikacja i ocena wiarygodności klientów • Reklama internetowa – dobieranie reklamy właściwej dla zawartości oglądanej strony: Google AdSense • Wykrywanie oszustw – ocena reputacji sprzedających i kupujących na aukcjach internetowych • Projektowanie serwerów WWW – analiza logów, personalizacja usług Instytut Informatyki PP 2014/2015 Eksploracja danych 73 Eksploracja danych Ranking stron WWW 74 Ważność strony • PageRank (PR) – bez kontekstowy ranking stron WWW (Google) Pozycja strony jest proporcjonalna do ilości innych stron, które się do niej odwołują. Z każdym odwołaniem związana jest waga odwołującej się strony. Jeśli do danej strony odwołuje się strona, który ma wysoką ocenę, to ma większe to znaczenie niż odwołanie mniej ważnej strony. • Hubs&Authorities Wybór przez proces próbkowania reprezentatywnej grupy stron WWW. Szacowanie prawdopodobieństw dla dwóch typów stron WWW: stron autorytatywnych, zawierających źródła ważnych informacji i stron koncentratorów, to jest stron zawierających linki do stron autorytatywnych. Czy wszystkie strony są równie ważne? www.microsoft.com – 86 500 000 odwołań (2006 rok) www.jankowalski.pl – 16 odwołań Czy wszystkie odwołania są równie ważne? Definicja ważności strony A: PageRank – PR(A). Przyjmijmy, że dla danej strony A istnieją strony T1,…, Tn, które zawierają odwołania (linki) do strony A. C(Ti) jest liczbą wszystkich odwołań umieszczonych na stronie Ti. Parametr d nazwiemy podatkiem, którego wartość mieści się w przedziale (0÷1). Ważność strony A jest wartością wyrażenia: PR(A)=(1-d)*(PR(T1)/C(T1)+…+PR(Tn)/C(Tn))+d/n Ważność strony A jest zależna od liczby stron Ti, z których jest ona bezpośrednio osiągalna. Dodatkowo ważność strony A jest zależna od ważności stron tych stron oraz od prawdopodobieństwa, że z danej strony Ti nastąpi przejście do strony A. Ważność strony opisuje prawdopodobieństwo osiągania danej strony w sieci WWW. Stąd suma ważności wszystkich stron powinna być równa 1. Instytut Informatyki PP 2014/2015 Eksploracja danych 75 Instytut Informatyki PP 2014/2015 Eksploracja danych 76 Algorytm PageRank • Ponumeruj wszystkie indeksowane strony WWW • Utwórz macierz M, w której liczba wierszy i kolumn jest równa liczbie indeksowanych stron Przykład Dane są trzy strony WWW: A, B i C powiązane ze sobą w sposób przedstawiony na grafie. Obok pokazano macierz M opisującą topologię powiązań. • Wypełnij macierz M: strona o numerze i odpowiada i-tej kolumnie i i-temu wierszowi macierzy • M[i,j] = 0 jeżeli strona j nie zawiera odwołań do strony i • M[i,j] = 1/C(j) jeżeli strona j zawiera odwołania do strony i, i strona j zawiera w sumie c(j) odwołań. • Utwórz wektor ważności stron V, który zawiera tyle wierszy ile jest indeksowanych stron; i-ty wiersz wektora odpowiada i-tej stronie. Poszczególne wartości wektora reprezentują ważność poszczególnych stron. • Zainicjuj wektor ważności; dla wszystkich elementów V[i]=1/liczba_stron, początkowo wszystkie strony są równoważne. • Mnóż iteracyjnie wektor V razy macierz M v1 m11 m12 v 2 = 0,85 * m21 m22 ... ... ... v m m n2 n n1 ... ... ... m11 m1n v1 0,15 / n m2 n v2 0,15 / n ∗ + ... ... ... mnn vn 0,15 / n Instytut Informatyki PP 2014/2015 0 1 0 B A 1 2 0 1 2 0 1 2 1 2 C Początkowa ważność stron jest równa 1/3. Dla uproszczenia obliczeń przyjęto, że wartość parametru d=1. Kolejne iteracje algorytmu PageRank generują coraz dokładniejsze wartości wektora ważności stron. V0 V1 V2 a=1/3 a=1/3 a=1/3 V3 V4 a=1/3 a=1/3 b=1/3 b=1/2 b=5/12 b=11/24 b=7/16 c=1/3 c=1/6 c=1/4 c=5/24 c=11/48 Instytut Informatyki PP 2014/2015 Eksploracja danych 77 Eksploracja danych 78 Anomalie miary PageRank Anomalie miary PageRank Ślepa uliczka (dead end – DE) – strona, która nie posiada następników i nie może przekazać swojej ważności. Ważność wszystkich stron dąży do zera. Pajęcza pułapka (spider trap – ST) – strona lub zbiór stron, które zawierają tylko odwołania do siebie przejmuje ważność wszystkich innych stron, z których można przejść do pajęczej pułapki. Strona A jest ślepą uliczką grafu powiązań. 0 0 0 B A 0 1 2 1 2 1 2 0 1 2 Strona A jest pajęczą pułapką. Przejmuje ona ważność stron B i C. 1 0 0 B A C V0 V1 V2 V3 V4 … ≈0 b=1/3 b=1/6 b=1/12 b=1/24 b=1/48 ≈0 c=1/3 c=1/6 c=1/12 c=1/24 c=1/48 ≈0 V0 Instytut Informatyki PP 2014/2015 Eksploracja danych 79 Opodatkowanie stron Anomalie miary ważności stron są wynikiem niespełnienia postulatu, by każda strona WWW była osiągalna przez nawigację z innej dowolnej strony WWW. Rozwiązaniem anomalii DE i ST jest opodatkowanie stron - wartość parametru d<1. Opodatkowanie jest odjęciem każdej ze stron d% wartości i równa redystrybucja tego podatku wszystkim stronom. Innym opisem znaczenia parametru d jest przyjęcie wartości (1-d) jako prawdopodobieństwa losowej nawigacji wzdłuż powiązań między stronami, a wartość d odpowiada prawdopodobieństwu skoku (teleportowania) do losowo wybranej strony. v1 m11 m12 v m m22 2 = 0,85 * 21 ... ... ... v m m n n1 n2 m1n 1 / n 1 / n ... m2n + 0,15 * ... ... ... m11 mnn 1 / n ... Dla wartości podatku d=0,2 ważność stron w grafie o topologii pajęczej pułapki będzie wynosić: V0 V1 V2 V3 V4 a=1/3 a=11/15 a=79/75 a=127/97 a=53/35 b=1/3 b=1/3 b=1/3 b=1/3 b=1/3 c=1/3 c=1/3 c=1/3 c=1/3 c=1/3 1 2 1 2 0 1 2 C Vn a=1/3 a=1/3 a=1/6 a=1/12 a=1/24 0 1 2 Instytut Informatyki PP 2014/2015 V1 V2 V3 V4 … Vn a=1/3 a=2/3 a=5/6 a=11/12 a=23/24 ≈1 b=1/3 b=1/6 b=1/12 b=1/24 b=1/48 ≈0 c=1/3 c=1/6 c=1/12 c=1/24 c=1/48 ≈0 Instytut Informatyki PP 2014/2015