Title: Generowanie drzew decyzyjnych dla duzych zbior
1Generowanie drzew decyzyjnych dla duzych zbiorów
danych
2Plan wykladu
- Problematyki zwiazane z duzymi zbiorami danych
- Algorytmy generowania drzewa
- SPRINT
- Algorytm sekwencyjny
- Algorytm równolegly
- Soft tree drzewo z elastycznymi podzialami
3Problemy zwiazane z duzymi zbiorami danych
- Dane w praktyce sa gigantyczne
-
- Dane nie mieszcza sie w pamieci
- Dane zawieraja szumy (oklamywania)
- Generowanie drzewa jest czasochlonne
4Algorytmy dla duzego zbioru danych
- Musza dzialac bez zalozenia o wielkosci pamieci
- Musza dzialac w miare szybko (w akceptowanym
czasie) - Musza dac dobry wynik w przypadku wystapienia
szumu w zbiorze danych - Musza dac zrozumiale dla czlowieka wyniki
- Musza dac dobra jakosc klasyfikacji
5Standardowe algorytmy
- Kazdy wezel stowarzyszony z podzbiorem danych -gt
ograniczenie pamieciowe - Przy wyznaczeniu najlepszego podzialu dane sa
wielokrotnie sortowane -gt czasochlonne
6Miara zlozonosci zbioru (c.d.)
- Gini Index Gini(X) 1- ?j p(j X)2
- gdzie p(j X) Cj / X jest czestosc
wystapienia j-tej klasy w zbiorze X - Entropia Ent(X) - ?j p(j X) log p(j X)
- Konflikt Conflict(X) ?i?j Ci?Cj
7Miara jakosci podzialu
- Zbiór danych przy wezle t jest podzielony na k
czesci - ni liczba obiektów w i - tym poddrzewie, n
liczba obiektów w wezle t - Miara Gini
- Kryterium podzialu Minimalizuje GINIsplite
- Miara Gain
- Kryterium podzialu Maksymalizuje Gainsplite
- Miara Discern
- Kryterium podzialu Maksymalizuje Discern
8Wyznaczanie optymalnego podzialu atrybutów
rzeczywistych
- Sortuj wartosci atrybutu
- Przegladaj kolejna wartosc progowa, obliczajac
rozklad klas decyzyjnych - Wybierz wartosc progowa o najmniejszym GINI index
9Zlozonosc algorytm szukania optymalnego podzialu
- Dany atrybut rzeczywisty a i zbiór mozliwych
wartosci progowych (?1, ?2,...?N ), najlepszy
test (alt ?i) mozna znalezc w czasie ?(N) - Minimalna liczba prostych zapytan SQL potrzebna
do szukania najlepszego testu jest ?(dN), gdzie
d jest liczba klas decyzyjnych - Wada szukanie najlepszego podzialu jest
kosztowne, jesli atrybut zawiera duzo róznych
wartosci.
10Algorytm SPRINT - charakterystyki
- Nadaje sie dla danych czesciowo umieszczonych na
dysku - Uzywa sie techniki pre-sortowania w celu
przyspieszenia procesu obliczenia na atrybutach
rzeczywistych - Dane sa sortowane tylko raz przed obliczeniem
- Latwo mozna zrównoleglic
11SPRINT - struktura danych
- Kazdy atrybut ma swoja liste wartosci
- Kazdy element listy ma trzy pole wartosc
atrybutu, numer klasy i rid (numer obiektu w
zbiorze danych) - Rzeczywiste atrybuty sa uporzadkowane (tylko raz
przy utworzeniu) - Na poczatku listy sa stowarzyszone z korzeniem
drzewa - Kiedy wezel jest podzielony, listy sa podzielone
i sa stowarzyszone z odpowiednimi nastepnikami - Listy sa zapisane na dysku w razie potrzeby
12Przyklad listy wartosci
Age Class rid
17 High 1
20 High 5
23 High 0
32 Low 4
43 High 2
68 Low 3
Car Type Class rid
family High 0
sports High 1
sports High 2
family Low 3
truck Low 4
family high 5
13Podzial listy wartosci
14Struktura danych - Histogram
- SPRINT uzywa
- indeksu Gini do oceny jakosci podzialu
- funkcji testu typu (a ? ?) dla atrybutów
rzeczywistych - funkcji testu typu (a ? V) dla atrybutów
symbolicznych - Histogram rozklad klas decyzyjnych zbadanego
zbioru danych - Dla atrybutu rzeczywistego dwa histogramy
- Cbelow histogram dla danych ponizej wartosci
progowej - Cabove histogram dla danych powyzej wartosci
progowej - Dla atrybutu symbolicznego jeden histogram zwany
count matrix
15Histogram przyklad
Age Class rid
17 High 1
20 High 5
23 High 0
32 Low 4
43 High 2
68 Low 3
Count matrix
H L
family 2 1
sports 2 0
truck 0 1
16Wyznaczanie najlepszego podzialu - atrybut
rzeczywisty
- Kazdy wezel ma listy wartosci obiektów w danym
wezle
Wejscie lista wartosci atrybutu a Wyjscie
(a??) 1. Cbelow 0 2. Cabove rozklad klas
obiektów w danym wezle 3. Przegladaj kolejna
wartosc atrybutu 3.1 Oblicz jakosc podzialu 3.2
Modyfikuj Cbelow i Cabove 4. Wybierz najlepszy
podzial
17Wyznaczanie podzialu-atrybutu rzeczywistego (c.d.)
18Wyznaczanie podzialu -atrybutu symbolicznego
1. Wyznacz macierz rozkladu klas obiektów w
danym wezle 2. Uzywajac algorytmu
aproksymacyjnego (w SLIQ) wyznacz podzbiór
wartosci V ? Da t. zeby test (a?V) byl optymalny
19Wykonanie podzialu
- Kazda lista jest podzielona na dwie listy
- Atrybut testujacy
- Podziel wartosci listy zgodnie z testem
- Atrybut nie testujacy
- Nie mozna uzywac testu
- Uzywaj rid
- Skorzystaj z tablicy haszujacej
20Wykonanie podzialu (c.d.)- atrybutu nie
testujacego
- Przy podziale atrybutu testujacego, wstaw rid
rekordów do tablicy haszujacej. - Tablica haszujaca informacje o tym do którego
poddrzewa rekord zostal przeniesiony. - Algorytm
- Przegladaj kolejny rekord listy
- Dla kazdego rekordu wyznacz (na podstawie tablicy
haszujacej) poddrzewo, do którego rekord ma byc
przeniesiony
21Wykonanie podzialu (c.d) - duza tablica haszujaca
- Problem Tablica haszujaca nie miesci sie w
pamieci - Algorytm
- Krok 1 Podziel zbiór wartosci atrybutu
testujacego na male porcje tak, zeby tablica
haszujaca miescila sie w pamieci - Krok 2 Dla kazdej porcji
- Podziel rekordy atrybutu testujacego do
wlasciwego podrzewa - Buduj tablice haszujacej
- Przegladaj kolejny rekord atrybutu nietestujacego
i przynies go do odpowiedniego poddrzewa jesli
rekord wystepuje w tablicy haszujacej - Krok 3 Jesli wszystkie rekordy zostaly
przydzielone do poddrzew stop - wpp. goto krok 2
22SPRINT algorytm równolegly
- Listy wartosci atrybutów sa równo podzielone
- Atrybut rzeczywisty
- sortuj zbiór wartosci i
- podziel go na równe przedzialy
- Atrybut numeryczny
- podziel wedlug rid
- Kazdy procesor ma jedna czesc kazdej listy
23Podzial zbioru danych
Procesor 0
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
Procesor 1
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
24Wyznaczanie najlepszego podzialu atrybut
rzeczywisty
- Kazdy procesor ma przedzial wartosci atrybutu
- Kazdy procesor inicjalizuje Cbelow i Cabove
uwzgledniajac rozklad klas w innych procesorach - Kazdy procesor przeglada swoja liste i wyznacza
najlepsza lokalna wartosc progowa - Procesory komunikuja sie w celu szukania
najlepszej globalnej wartosci progowej
25Wyznaczanie najlepszego podzialu atrybut
symboliczny
- Kazdy procesor buduje lokalne count matrix i
wysyla wynik do centralnego procesora - Centralny procesor oblicza globalny count matrix
- Procesory wyznaczaja najlepszy podzial na
podstawie globalnego count matrix
26Histogramy w obliczeniu równoleglym
Process 0
Age Class rid
17 High 1
20 High 5
23 High 0
H L
Cbelow 0 0
Cabove 4 2
Process 1
Age Class rid
32 Low 4
43 High 2
68 Low 3
H L
Cbelow 3 0
Cabove 1 2
27Wykonanie podzialu
- Podzial atrybutu testujacego Kazdy procesor
wyznacza poddrzewa, do których rekordy w lokalnej
liscie beda przeniesione - Procesory wymieniaja ze soba informacje ltrids,
poddrzewogt - Podzial pozostalych atrybutów Po otrzymaniu
informacji ze wszystkich procesorów kazdy
procesor buduje tablice haszujaca i wykonuje
podzialy dla pozostalych atrybutów
28SPRINT
- Wada
- Dodatkowe struktury danych
- Nieefektywny jesli atrybut ma duzo wartosci
- Nie wykorzystuje mocnych narzedzi systemów baz
danych
29Drzewo z elastycznymi podzialami - klasyfikacja
30Elastyczna wartosc progowa vs. ostra wartosc
progowa
- Standardowy test (alt?)
- Nowy test
- Elastyczna wartosc progowa zamiast ?
przedzial (?1, ?2). - Funkcja testu trójka (a, ?1, ?2)
- Zbiór obiektów jest podzielony na trzy podzbiory
- a ? ?1 i a ? ?2 przedzialy pewnosci
- ?1 lt a lt ?2 przedzial niepewnosci
31Drzewo z elastycznymi podzialami vs.
standardowe drzewo
TaxInc,75,85
lt85K
gt75K
Standardowe drzewo (z ostrym podzialem)
Drzewo z nieostrym podzialem
32Klasyfikacja nowego obiektu
- I strategia - fuzzy decision tree
- Przy wezlach wewnetrznych, wyznacz
prawdopodobienstwa, ze obiekt nalezy do lewego i
do prawego poddrzewa. - Dla kazdego liscia, oblicz prawdopodobienstwo
tego, ze obiekt nalezy do tego liscia - Klasa, do której nalezy obiekt jest zwiazana z
lisciem o najwiekszym prawdopodobienstwie
33Klasyfikacja nowego obiektu (c.d.)
- II strategia rough decision tree
- Uzywaj obu poddrzew (jesli obiekt nalezy do
przedzialu niepewnosci) - Utwórz wektor wyników agregujac wyniki otrzymane
z poddrzew - Glosuj, zeby znalezc najlepsza decyzje
34Wyznaczanie najlepszego podzialu
- Atrybut symboliczny standardowo
- Atrybut rzeczywisty
- Uzywaj techniki dziel i rzadz
- Uzywaj zapytan SQL do szybkiego obliczenia
rozkladu klas w przedzialach
35Techniki ulepszania
- Definicja wartosc podzialu ? jest brzegowa,
jesli istnieja 2 kolejne rekordy o1 i o2 takie,
ze - a(o1) lt ? lt a(o2) i d(o1) ? d(o2)
?2
?3
?5
?6
?1
?4
?8
?7
DISCERN(?)
36Techniki ulepszania Usunac wartosci
niegraniczne
- Obserwacja optymalna wartosc progowa nalezy do
zbioru wartosci granicznych. - Wniosek wartosci nie bedace brzegowymi mozna
usunac ze zbioru mozliwych wartosci progowych.
37Techniki ulepszania Eliminowac skrajne wartosci
- Definicja Niech i oznacza i-ta klase decyzyjna.
Mediana(i) jest wartosc progowa ? taka, ze - x a(x) lt ? i d(x) i x a(x) ? ? i
d(x) i - Obserwacja Funkcja
- Discern ?1, ?2,... ?k ? ? jest
- jest rosnaca w przedziale ?1, mini(Median(i)))
- jest malejaca w przedziale (maxi(Median(i)), ?k
- Wniosek Mozna ograniczyc przedzial wyszukiwania
- ?best ? mini(Median(i)), maxi(Median(i))
38Eliminowac skrajne wartosci (c.d.)
39Technika dziel i rzadz
- Idea
- Krok 1 Podziel zbiór wartosci atrybutu na k
przedzialów - Krok 2 Ocen jakosci przedzialów
- Krok 3 Wybierz najlepszy przedzial
- Krok 4 Powtórz proces dla najlepszego przedzialu
?2
?1
?4
?5
?7
?8
?3
?6
Cykl 1
a
Cykl 2
Cykl 3
k 3
. . .
40Technika dziel i rzadz miara oceny jakosci
przedzialu
- Problem jak ocenic jakosc przedzialu ?L,?R?
- Miara oceny musi dobrze oszacowac jakosc
najlepszej wartosci progowej w przedziale
?L,?R.
41Technika dziel i zwyciez
- Dla dowolnej ? ? (vL, vR)
- Wartosc oczekiwana
- Odchylenie standardowe
-
42Algorytm dziel i rzadz
- Wejscie atrybut a, amin, amax
- Wyjscie optymalny test (a lt ?)
- Parametry k , ?
- vL amin vR amax
- While (vL lt vR) do
- 1.Podziel przedzial vL , vR na k równych
przedzialów za pomoca punktów - pi vL i(vR - vL) / k dla (i 0,1,...,k)
- 2. Dla (i 1,2,...,k)
- 2.1. Oblicz Eval(pi-1 pi, ?)
- 2.2. Niech pj-1 pj bedzie najlepszym
przedzialem - 2.3. vL pi-1 vR pj
-
- Return vL
-
43Kryterium oceny stabilnosci przedzialu
- Pod-przedzialy nie maja lepszej jakosci
- Przedzial jest w miare maly
- Przedzial zawiera mala liczbe obiektów
44Wykonanie podzialu
- Test jest typu (a?V) standardowo
- Test typu (a, ?1, ?2)
- Jesli (a(x) lt ?2) to x nalezy do lewego poddrzewa
- Jesli (a(x) gt ?1) to x nalezy do prawego
poddrzewa - Jesli (?1 lt a(x) lt ?2) to x nalezy do obu
poddrzew
45Drzewo z elastycznymi podzialami - obserwacja
- Zaleta
- Nie wymaga dodatkowych struktur danych
- Nie wymaga umieszczenia danych w pamieci
- Korzysta sie z SQL-owych zapytan
- Dobre rozwiazanie dla danych z szumami
- Wada Czas klasyfikacji jest dluzszy