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

Podobne dokumenty