Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Wyk lad 7: Drzewa decyzyjne dla
du ˙zych zbior´
ow danych
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Funkcja rekurencyjna buduj drzewo(U, dec, T):
1: if (kryterium stopu(U, dec)= true) then
2: T.etykieta =kategoria(U, dec);
3: return;
4: end if
5: t :=wybierz test(U, TEST);
6: T.test := t; 7: for v ∈ Rt do
8: Uv := {x ∈ U : t(x) = v};
9: utw´orz nowe poddrzewo T0; 10: T.ga la´,z(v) = T0;
11: buduj drzewo(Uv, dec, T0)
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Funkcje pomocnicze
Kryterium stopu: Zatrzymamy konstrukcji drzewa, gdy
aktualny zbi´or obiekt´ow:
jest pusty lub
zawiera obiekty wy lacznie jednej klasy decyzyjnej lub, nie ulega podziale przez ˙zaden test
Wyznaczenie etykiety zasada wi, ekszo´sciow, a:,
kategoria(P, dec) = arg max
c∈Vdec
|P[dec=c]| tzn., etykieta dla danego zbioru obiekt´, ow jest klasa decyzyjna najliczniej reprezentowana w tym zbiorze.
Kryterium wyboru testu: heurytyczna funkcja
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Miary r´
o ˙znorodno´
sci zbioru
Ka˙zdy zbi´or obiekt´ow X ulega podziale na klasy decyzyjne: X = C1∪ C2∪ ... ∪ Cd
gdzie Ci = {u ∈ X : dec(u) = i}.
Wektor (p1, ..., pr), gdzie pi = |C|X|i|, nazywamyrozk ladem
klas decyzyjnych w X. Conf lict(X) =X i<j |Ci| × |Cj| = 1 2 |X|2−X|Ci|2 Entropy(X) = −X|Ci| |X| · log |Ci| |X| = − X pilog pi Gini(X) = 1 −Xp2i
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Ocena funkcji testu
Ka˙zdy test t jest oceniony na podstawie informacji zawartych w X, X1, ..., Xnt
X1 X2 ... Xnt
t
X
Podzia l zbioru X dokonany przez test t;
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Ocena funkcji testu
Rozr´o˙znialno´s´c:
disc(t, X) = conf lict(X) −Xconf lict(Xi)
Przyrostu informacji (Information gain).
Gain(t, X) = Entropy(X) −X|Xi|
|X| · Entropy(Xi) Gini’s index
G(t, X) = Gini(X) −X|Xi|
|X| · Gini(Xi) Kara za zbyt drobny podzia l, np. gain ratio
Gain ratio = Gain(t, X)
−Pr i=1 |Xi| |X| · log |Xi| |X|
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Przyk lad
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
S labo´
sci standardowego algorytmu:
Ka˙zdy weze l jest skojarzony z podzbiorem danych:,
ograniczenie pamieciowe,
Wyznaczenie najlepszego podzia lu wymaga wielokrotnego sortowania danych: czasoch lonne
Dany atrybut rzeczywisty a i zbi´or mo˙zliwych cie´,c (c1, c2, ...cN), najlepszy test (a, ci) mo˙zna znale´z´c w czasie Ω(N )
Minimalna liczba prostych zapyta´n SQL potrzebna do szukania najlepszego testu jest O(dN ), gdzie d jest liczba klas decyzyjnych,
Wniosek: szukanie najlepszego podzia lu jest kosztowne, je´sli atrybut zawiera du˙zo r´o˙znych warto´sci.
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Charaterystyka algorytmu SPRINT
Nadaje sie dla danych cz, e´sciowo umieszczonych na, dysku
U˙zywa sie techniki pre-sortowania w celu przyspieszenia, procesu obliczenia na atrybutach rzeczywistych;
Dane sa sortowane tylko raz przed obliczeniem, Latwo mo˙zna zr´ownolegli´c
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Struktura danych w SPRINT
Ka˙zdy atrybut ma swoja list, e warto´sci, Ka˙zdy element listy ma trzy pole: - warto´s´c atrybutu,
- numer klasy i
- rid (numer obiektu w zbiorze danych)
Rzeczywiste atrybuty sa uporz, adkowane (tylko raz przy, utworzeniu)
Na poczatku listy s, a stowarzyszone z korzeniem drzewa, Kiedy weze l podlega podziale, listy s, a podzielone i s, a, skojarzone z odpowiednimi nastepnikami,
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Przyk lad
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Struktura danych w SPRINT
SPRINT u˙zywa:
indeksu Gini do oceny jako´sci podzia lu
testu typu (a ≤ c) dla atrybut´ow rzeczywistych testu typu (a ∈ V ) dla atrybut´ow symbolicznych
Histogram: rozk lad klas decyzyjnych zbadanego zbioru danych
Dla atrybutu rzeczywistego dwa histogramy:
Cbelow: histogram dla danych poni˙zej warto´sci progowej
Cabove: histogram dla danych powy˙zej warto´sci
progowej
Dla atrybutu symbolicznego jeden histogram zwany count matrix
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Przyk lad
Age Class rid
17 High 1 20 High 5 23 High 0 32 Low 4 43 High 2 68 Low 3 Histogram klas 5 high family 4 Low truck 3 Low family 2 High sports 1 High sports 0 High family rid Class Car Type Punkt podziału H L family 2 1 sports 2 0 truck 0 1 Count matrix
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Outline
1 Motywacje 2 Algorytm SPRINTSzukanie najlepszego podzia lu Dokonanie podzia lu
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Wyznaczanie podzia lu atrybutu
rzeczywistego
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Wyznaczanie podzia lu atrybutu
symbolicznego
5 high family 4 Low truck 3 Low family 2 High sports 1 High sports 0 High family rid Class Car Type 1 0 truck 0 2 sports 1 2 family L H Count Matrix Lista wartości CarType1. Wyznacz macierz rozkładu klas obiektów w danym węźle 2. Używając algorytmu aproksymacyjnego (w SLIQ)
wyznacz podzbiór wartości V⊆ Dat. żeby test (a∈V) był optymalny
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Outline
1 Motywacje 2 Algorytm SPRINTSzukanie najlepszego podzia lu Dokonanie podzia lu
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
G l´
owna idea
Ka˙zda lista jest podzielona na dwie listy
Atrybut zawierajacy test: Podziel warto´sci listy, zgodnie z testem
Atrybut niewierajacy test:,
Nie mo˙zna korzysta´c z informacji w funkcji testu. Skorzystaj z rid
Skorzystaj z tablicy haszujacej,
Przy podziale atrybutu zawierajacy test: wstaw rid, rekord´ow do tablicy haszujacej.,
Tablica haszujaca: informacje o tym do kt´, orego poddrzewa rekord zosta l przeniesiony.
Algorytm:
Przegladaj kolejny rekord listy,
Dla ka˙zdego rekordu wyznacz (na podstawie tablicy haszujacej) poddrzewo, do kt´, orego rekord ma by´c przeniesiony
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Problem: zbyt du ˙za tablica haszuj
aca
,Algorytm:
Krok 1: Podziel zbi´or warto´sci atrybutu testujacego na, ma le porcje tak, ˙zeby tablica haszujaca mie´sci la si, e w, pamieci,
Krok 2: Dla ka˙zdej porcji
Podziel rekordy atrybutu testujacego do w la´sciwego, podrzewa
Buduj tablice haszuj, acej,
Przegladaj kolejny rekord atrybutu nietestuj, acego i, przynie´s go do odpowiedniego poddrzewa je´sli rekord wystepuje w tablicy haszuj, acej,
Krok 3: Je´sli wszystkie rekordy zosta ly przydzielone do poddrzew stop, wpp. id´z do krok 2
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Outline
1 Motywacje 2 Algorytm SPRINTSzukanie najlepszego podzia lu Dokonanie podzia lu
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
R´
ownoleg ly SPRINT
Listy warto´sci atrybut´ow sa r´, owno podzielone
Atrybut rzeczywisty: sortuj zbi´or warto´sci i podziel go na r´owne przedzia ly
Atrybut numeryczny: podziel wed lug rid Ka˙zdy procesor ma jedna cz, e´s´, c ka˙zdej listy
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Szukanie najlepszego podzia lu
Dla atrybutu rzeczywistego:
Ka˙zdy procesor ma przedzia l warto´sci atrybutu Ka˙zdy procesor inicjalizuje Cbelow i Cabove uwzgledniaj, ac rozk lad klas w innych procesorach, Ka˙zdy procesor przeglada swoj, a list, e i wyznacza, najlepsza lokaln, a warto´s´, c progowa,
Procesory komunikuja si, e w celu znalezienia globalnie, najlepszego ciecia,
Dla atrybutu symbolicznego:
Ka˙zdy procesor buduje lokalne count matrix i wysy la wynik do centralnego procesora
Centralny procesor oblicza globalny count matrix Procesory wyznaczaja najlepszy podzia l na podstawie, globalnego count matrix
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Przyk lad
Age Class rid
17 High 1
20 High 5
23 High 0
Car Type Class rid
family High 0
sports High 1
sports High 2
Age Class rid
32 Low 4
43 High 2
68 Low 3
Car Type Class rid
family Low 3
truck Low 4
family high 5
Procesor 1 Procesor 0
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Dokonanie podzia lu
Podzia l atrybutu zawierajacy test: Ka˙zdy procesor, wyznacza poddrzewa, do kt´orych rekordy w lokalnej li´scie bed, a przeniesione,
Procesory wymieniaja ze sob, a informacje, hrids, poddrzewoi
Podzia l pozosta lych atrybut´ow: Po otrzymaniu informacji ze wszystkich procesor´ow ka˙zdy procesor buduje tablice haszuj, ac, a i wykonuje podzia ly dla, pozosta lych atrybut´ow
Data mining
Nguyen Hung Son
Motywacje Algorytm SPRINT Szukanie najlepszego podzia lu Dokonanie podzia lu SPRINT - wersja r´ownoleg la
Wady algorytmu SPRINT
Dodatkowe struktury danych
Nieefektywny je´sli atrybut ma du˙zo warto´sci Nie wykorzystuje mocnych narzedzi system´, ow baz danych