Generowanie drzew decyzyjnych dla dużych zbiorów danych

Slides:



Advertisements
Podobne prezentacje
Przykład liczbowy Rozpatrzmy dwuwymiarową zmienną losową (X,Y), gdzie X jest liczbą osób w rodzinie, a Y liczbą izb w mieszkaniu. Niech f.r.p. tej zmiennej.
Advertisements

ALGORYTMY I STRUKTURY DANYCH
ESTYMACJA PRZEDZIAŁOWA
Ocena wartości diagnostycznej testu – obliczanie czułości, swoistości, wartości predykcyjnych testu. Krzywe ROC. Anna Sepioło gr. B III OAM.
Data Mining w e-commerce
Algorytmy sortowania i porządkowania
Algorytmy sortowania i przeszukiwania
Schemat blokowy M START KONIEC
Mechanizm wnioskowania rozmytego
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Inteligencja Obliczeniowa Drzewa Decyzji.
Badania operacyjne. Wykład 1
Badania operacyjne. Wykład 2
ALGORYTMY I STRUKTURY DANYCH
Metody numeryczne wykład no 2.
ALGORYTMY I STRUKTURY DANYCH
Geometria obliczeniowa Wykład 1
CLUSTERING Metody grupowania danych Plan wykładu Wprowadzenie Dziedziny zastosowania Co to jest problem klastrowania? Problem wyszukiwania optymalnych.
ALGORYTMY GEOMETRYCZNE.
Próba eksperymentalnej oceny metody PROBE
Algorytm Rochio’a.
Metody Sztucznej Inteligencji w Sterowaniu 2009/2010Optymalizacja miary efektywności działania sztucznych sieci neuronowych Dr hab. inż. Kazimierz Duzinkiewicz,
Niepewności przypadkowe
Dynamiczne struktury danych 1
Wykład 6 Standardowy błąd średniej a odchylenie standardowe z próby
Klasyfikacja Obcinanie drzewa Naiwny klasyfikator Bayes’a kNN
Odkrywanie wzorców sekwencji
Algorytmy i struktury danych
Metody Symulacyjne w Telekomunikacji (MEST) Wykład 6/7: Analiza statystyczna wyników symulacyjnych  Dr inż. Halina Tarasiuk
Średnie i miary zmienności
Hipoteza cegiełek, k-ramienny bandyta, minimalny problem zwodniczy
Algorytmy i struktury danych
Zbiór do posortowania mieści się w pamięci
Podstawy programowania II
Przegląd podstawowych algorytmów
Geometria obliczeniowa Wykład 8
Algorytmy i struktury danych
Zadanie programowania liniowego PL dla ograniczeń mniejszościowych
Geometria obliczeniowa Wykład 4
Elementy Rachunku Prawdopodobieństwa i Statystyki
Techniki eksploracji danych
ALGORYTMY ROZWIĄZYWANIA GIER C.D.
Modelowanie i identyfikacja 2010/2011Optymalizacja miary efektywności działania sztucznych sieci neuronowych Dr hab. inż. Kazimierz Duzinkiewicz, Katedra.
Dana jest sieć dystrybucji wody w postaci: Ø      m- węzłów,
Bazy danych Microsoft access 2007.
Planowanie badań i analiza wyników
VI EKSPLORACJA DANYCH Zadania eksploracji danych: klasyfikacja
VII EKSPLORACJA DANYCH
Politechniki Poznańskiej
IV EKSPLORACJA DANYCH Zadania eksploracji danych: klasyfikacja
Algorytmika.
Co to jest dystrybuanta?
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski.
Ekonometryczne modele nieliniowe
Wnioskowanie statystyczne
Powtórzenie wyk ł adu 10 Fizyczna organizacja danych w bazie danych. Indeksy.
Algorytmy równoległe Algorytm równoległy pozwala na wykonywanie w danej chwili więcej niż jednej operacji. EREW - wyłączny odczyt i wyłączny zapis; CREW.
Wstęp do programowania Wykład 1
Podstawowe pojęcia i terminy stosowane w statystyce
ZPT 1 Dekompozycja nierozłączna Pojęcie r - przydatności Dekompozycja zrównoważona Dekompozycja równoległa.
Statystyczna analiza danych
Rozkłady statystyk z próby dr Marta Marszałek Zakład Statystyki Stosowanej Instytut Statystyki i Demografii Kolegium.
Treść dzisiejszego wykładu l Postać standardowa zadania PL. l Zmienne dodatkowe w zadaniu PL. l Metoda simpleks –wymagania metody simpleks, –tablica simpleksowa.
Indeksy drzewiaste. ISAM ISAM - INDEXED SEQUENTIAL ACCESS METHOD Problem: –Dany jest plik uporządkowany – w jaki sposób zrealizować efektywnie zapytanie.
Drzewa.
Statystyka matematyczna
Indeksy.
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Zapis prezentacji:

Generowanie drzew decyzyjnych dla dużych zbiorów danych

Plan wykładu Problematyki związane z dużymi zbiorami danych Algorytmy generowania drzewa: SPRINT Algorytm sekwencyjny Algorytm równoległy Soft tree: drzewo z „elastycznymi podziałami”

Problemy związane z dużymi zbiorami danych Dane w praktyce są gigantyczne Dane nie mieszczą się w pamięci Dane zawierają szumy (okłamywania) Generowanie drzewa jest czasochłonne

Algorytmy dla dużego zbioru danych Muszą działać bez założenia o wielkości pamięci Muszą działać w miarę szybko (w akceptowanym czasie) Muszą dać dobry wynik w przypadku wystąpienia szumu w zbiorze danych Muszą dać zrozumiałe dla człowieka wyniki Muszą dać dobrą jakość klasyfikacji

Standardowe algorytmy Każdy węzeł stowarzyszony z podzbiorem danych -> ograniczenie pamięciowe Przy wyznaczeniu najlepszego podziału dane są wielokrotnie sortowane -> czasochłonne

Miara złożoności zbioru (c.d.) Gini Index: Gini(X) = 1- j [p(j | X)]2 gdzie p(j | X) = Cj / |X|: jest częstość wystąpienia j-tej klasy w zbiorze X Entropia: Ent(X) = - j p(j | X) log p(j | X) Konflikt: Conflict(X) = ij CiCj conflict = 6 conflict = 5 conflict = 8 conflict = 9

Miara jakości podziału Zbiór danych przy węźle t jest podzielony na k części ni : liczba obiektów w i - tym poddrzewie, n : liczba obiektów w węźle t Miara Gini: Kryterium podziału: Minimalizuje GINIsplite Miara Gain: Kryterium podziału: Maksymalizuje Gainsplite Miara Discern: Kryterium podziału: Maksymalizuje Discern

Wyznaczanie optymalnego podziału atrybutów rzeczywistych Sortuj wartości atrybutu Przeglądaj kolejną wartość progową, obliczając rozkład klas decyzyjnych Wybierz wartość progową o najmniejszym GINI index

Złożoność algorytm szukania optymalnego podziału Dany atrybut rzeczywisty a i zbiór możliwych wartości progowych (1, 2,...N ), najlepszy test (a< i) można znaleźć w czasie (N) Minimalna liczba prostych zapytań SQL potrzebna do szukania najlepszego testu jest (dN), gdzie d jest liczba klas decyzyjnych Wada: szukanie najlepszego podziału jest kosztowne, jeśli atrybut zawiera dużo różnych wartości.

Algorytm SPRINT - charakterystyki Nadaje się dla danych częściowo umieszczonych na dysku Używa się techniki pre-sortowania w celu przyspieszenia procesu obliczenia na atrybutach rzeczywistych Dane są sortowane tylko raz przed obliczeniem Łatwo można zrównoleglić

SPRINT - struktura danych Każdy atrybut ma swoją listę wartości Każdy element listy ma trzy pole: wartość atrybutu, numer klasy i rid (numer obiektu w zbiorze danych) Rzeczywiste atrybuty są uporządkowane (tylko raz przy utworzeniu) Na początku listy są stowarzyszone z korzeniem drzewa Kiedy węzeł jest podzielony, listy są podzielone i są stowarzyszone z odpowiednimi następnikami Listy są zapisane na dysku w razie potrzeby

Przykład: listy wartości Age Class rid 17 High 1 20 5 23 32 Low 4 43 2 68 3 Car Type Class rid family High sports 1 2 Low 3 truck 4 high 5

Podział listy wartości

Struktura danych - Histogram SPRINT używa: indeksu Gini do oceny jakości podziału funkcji testu typu (a  ) dla atrybutów rzeczywistych funkcji testu typu (a  V) dla atrybutów symbolicznych Histogram: rozkład klas decyzyjnych zbadanego zbioru danych Dla atrybutu rzeczywistego dwa histogramy: Cbelow– histogram dla danych „poniżej” wartości progowej Cabove – histogram dla danych „powyżej” wartości progowej Dla atrybutu symbolicznego jeden histogram zwany count matrix

Histogram: przykład Punkt podziału Count matrix Histogram klas Age Class rid 17 High 1 20 5 23 32 Low 4 43 2 68 3 5 high family 4 Low truck 3 2 High sports 1 rid Class Car Type Punkt podziału Count matrix Histogram klas H L family 2 1 sports truck

Wyznaczanie najlepszego podziału - atrybut rzeczywisty Każdy węzeł ma listy wartości obiektów w danym węźle Wejście: lista wartości atrybutu a Wyjście: (a) 1. Cbelow = 0 2. Cabove = rozkład klas obiektów w danym węźle 3. Przeglądaj kolejną wartość atrybutu 3.1 Oblicz jakość podziału 3.2 Modyfikuj Cbelow i Cabove 4. Wybierz najlepszy podział

Wyznaczanie podziału-atrybutu rzeczywistego (c.d.)

Wyznaczanie podziału -atrybutu symbolicznego 5 high family 4 Low truck 3 2 High sports 1 rid Class Car Type L H Count Matrix Lista wartości CarType 1. 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  Da t. żeby test (aV) był optymalny

Wykonanie podziału Każda lista jest podzielona na dwie listy Atrybut testujący: Podziel wartości listy zgodnie z testem Atrybut nie testujący: Nie można używać testu Używaj rid Skorzystaj z tablicy haszującej

Wykonanie podziału (c.d.)- atrybutu nie testującego Przy podziale atrybutu testującego, wstaw rid rekordów do tablicy haszującej. Tablica haszująca: informacje o tym do którego poddrzewa rekord został przeniesiony. Algorytm: Przeglądaj kolejny rekord listy Dla każdego rekordu wyznacz (na podstawie tablicy haszującej) poddrzewo, do którego rekord ma być przeniesiony

Wykonanie podziału (c.d) - duża tablica haszująca Problem: Tablica haszująca nie mieści się w pamięci Algorytm: Krok 1: Podziel zbiór wartości atrybutu testującego na małe porcje tak, żeby tablica haszująca mieściła się w pamięci Krok 2: Dla każdej porcji Podziel rekordy atrybutu testującego do właściwego podrzewa Buduj tablicę haszującej Przeglądaj kolejny rekord atrybutu nietestującego i przynieś go do odpowiedniego poddrzewa jeśli rekord występuje w tablicy haszującej Krok 3: Jeśli wszystkie rekordy zostały przydzielone do poddrzew stop wpp. goto krok 2

SPRINT – algorytm równoległy Listy wartości atrybutów są równo podzielone Atrybut rzeczywisty: sortuj zbiór wartości i podziel go na równe przedziały Atrybut numeryczny: podziel według rid Każdy procesor ma jedną część każdej listy

Podział zbioru danych Procesor 0 Procesor 1 Age Class rid 17 High 1 20 5 23 Car Type Class rid family High sports 1 2 Procesor 1 Age Class rid 32 Low 4 43 High 2 68 3 Car Type Class rid family Low 3 truck 4 high 5

Wyznaczanie najlepszego podziału – atrybut rzeczywisty Każdy procesor ma przedział wartości atrybutu Każdy procesor inicjalizuje Cbelow i Cabove uwzględniając rozkład klas w innych procesorach Każdy procesor przegląda swoją listę i wyznacza najlepszą lokalną wartość progową Procesory komunikują się w celu szukania najlepszej globalnej wartości progowej

Wyznaczanie najlepszego podziału – atrybut symboliczny Każdy procesor buduje lokalne count matrix i wysyła wynik do centralnego procesora Centralny procesor oblicza globalny count matrix Procesory wyznaczają najlepszy podział na podstawie globalnego count matrix

Histogramy w obliczeniu równoległym Process 0 Age Class rid 17 High 1 20 5 23 H L Cbelow Cabove 4 2 Process 1 Age Class rid 32 Low 4 43 High 2 68 3 H L Cbelow 3 Cabove 1 2

Wykonanie podziału Podział atrybutu testującego: Każdy procesor wyznacza poddrzewa, do których rekordy w lokalnej liście będą przeniesione Procesory wymieniają ze sobą informacje <rids, poddrzewo> Podział pozostałych atrybutów: Po otrzymaniu informacji ze wszystkich procesorów każdy procesor buduje tablicę haszującą i wykonuje podziały dla pozostałych atrybutów

SPRINT Wada: Dodatkowe struktury danych Nieefektywny jeśli atrybut ma dużo wartości Nie wykorzystuje mocnych narzędzi systemów baz danych

Drzewo z „elastycznymi podziałami” - klasyfikacja

Elastyczna wartość progowa vs. ostra wartość progowa Standardowy test: (a<) Nowy test: „Elastyczna” wartość progowa: zamiast  przedział (1, 2). Funkcja testu: trójka (a, 1, 2) Zbiór obiektów jest podzielony na trzy podzbiory: a  1 i a  2: przedziały pewności 1 < a < 2 : przedział niepewności

Drzewo z „elastycznymi podziałami” vs. standardowe drzewo TaxInc,75,85 <85K >75K Standardowe drzewo (z ostrym podziałem) Drzewo z „nieostrym podziałem”

Klasyfikacja nowego obiektu I strategia - fuzzy decision tree: Przy węzłach wewnętrznych, wyznacz prawdopodobieństwa, że obiekt należy do lewego i do prawego poddrzewa. Dla każdego liścia, oblicz prawdopodobieństwo tego, że obiekt należy do tego liścia Klasa, do której należy obiekt jest związana z liściem o największym prawdopodobieństwie

Klasyfikacja nowego obiektu (c.d.) II strategia: rough decision tree Używaj obu poddrzew (jeśli obiekt należy do przedziału niepewności) Utwórz wektor wyników agregując wyniki otrzymane z poddrzew Głosuj, żeby znaleźć najlepszą decyzję

Wyznaczanie najlepszego podziału Atrybut symboliczny: standardowo Atrybut rzeczywisty: Używaj techniki „dziel i rządź” Używaj zapytań SQL do szybkiego obliczenia rozkładu klas w przedziałach

a(o1) <  < a(o2) i d(o1)  d(o2) Techniki ulepszania Definicja: wartość podziału  jest brzegowa, jeśli istnieją 2 kolejne rekordy o1 i o2 takie, że a(o1) <  < a(o2) i d(o1)  d(o2) 1 2 3 4 5 6 7 8 DISCERN() 1 2 3 4 5 6 7 8

Techniki ulepszania – Usunąć wartości niegraniczne Obserwacja: optymalna wartość progowa należy do zbioru wartości granicznych. Wniosek: wartości nie będące brzegowymi można usunąć ze zbioru możliwych wartości progowych.

Techniki ulepszania – Eliminować skrajne wartości Definicja: Niech i oznacza i-tą klasę decyzyjną. Mediana(i) jest wartość progowa  taka, że |{x: a(x) <  i d(x) = i}| = |{x: a(x)   i d(x) = i}| Obserwacja: Funkcja Discern: {1, 2,... k}   jest jest rosnąca w przedziale [1, mini(Median(i))) jest malejąca w przedziale (maxi(Median(i)), k] Wniosek: Można ograniczyć przedział wyszukiwania best  [mini(Median(i)), maxi(Median(i))]

Eliminować skrajne wartości (c.d.)

Technika „dziel i rządź” Idea: Krok 1: Podziel zbiór wartości atrybutu na k przedziałów Krok 2: Oceń jakości przedziałów Krok 3: Wybierz najlepszy przedział Krok 4: Powtórz proces dla najlepszego przedziału 1 2 3 4 5 6 7 8 Cykl 1: a Cykl 2: Cykl 3: k = 3 . . .

Technika „dziel i rządź”– miara oceny jakości przedziału Problem: jak ocenić jakość przedziału [L,R]? Miara oceny musi dobrze oszacować jakość najlepszej wartości progowej w przedziale [L,R].

Technika „dziel i zwycięż” vL vR Dla dowolnej   (vL, vR) Wartość oczekiwana: Odchylenie standardowe: Miara jakości przedziału:

Algorytm „dziel i rządź” Wejście: atrybut a, amin, amax Wyjście: optymalny test (a < ) Parametry: k ,  vL= amin; vR = amax; While (vL < vR) do { 1.Podziel przedział [vL , vR] na k równych przedziałów za pomocą 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] będzie najlepszym przedziałem; 2.3. vL = pi-1; vR = pj; }; Return vL;

Kryterium oceny stabilności przedziału Pod-przedziały nie mają lepszej jakości Przedział jest w miarę mały Przedział zawiera małą liczbę obiektów

Wykonanie podziału Test jest typu (aV): standardowo Test typu (a, 1, 2): Jeśli (a(x) < 2) to x należy do lewego poddrzewa Jeśli (a(x) > 1) to x należy do prawego poddrzewa Jeśli (1 < a(x) < 2) to x należy do obu poddrzew

Drzewo z elastycznymi podziałami - obserwacja Zaleta: Nie wymaga dodatkowych struktur danych Nie wymaga umieszczenia danych w pamięci Korzysta się z SQL-owych zapytań Dobre rozwiązanie dla danych z szumami Wada: Czas klasyfikacji jest dłuższy