Naiwny klasyfikator Bayesa
Transkrypt
Naiwny klasyfikator Bayesa
2016-04-10 GLM (Generalized Linear Models) Data Mining Wykład 6 Naiwny klasyfikator Bayes’a Maszyna wektorów nośnych (SVM) Naiwny klasyfikator Bayesa • Naiwny klasyfikator Bayesa jest klasyfikatorem statystycznym - oparty na twierdzeniu Bayesa • Niech X oznacza przykład, którego klasa nie jest znana. Każdy przykład jest reprezentowany w postaci n-wymiarowego wektora, X=(x1, x2, ..., xn) • P(C|X) prawdopodobieństwo a-posteriori (prawdopodobieństwo obliczane na podstawie wyników doświadczenia, czyli częstości), że przykład X należy do klasy C Reguła Bayesa Przykład X klasyfikujemy jako pochodzący z tej klasy Ci , dla której wartość P(Ci |X), i = 1, 2, ..., m, jest największa 1 2016-04-10 Naiwny klasyfikator Bayesa - Przykład • Przykład: Dany zbiór przykładów opisujących wnioski kredytowe klientów banku: P(Ryzyko=niskie | Wiek=38, Status=rozwodnik, Dochód=niski, Dzieci=2) • oznacza prawdopodobieństwo a-posteriori, że klient, X=(38, rozwodnik, niski, 2), składający wniosek kredytowy jest klientem o niskim ryzyku kredytowym (klient wiarygodny) Twierdzenie Bayesa • W jaki sposób oszacować prawdopodobieństwo aposteriori P(C|X)? P(C|X) = (P(X|C) * P(C))/P(X), • P(C) oznacza prawdopodobieństwo a-priori wystąpienia klasy C (tj. prawdopodobieństwo, że dowolny przykład należy do klasy C), • P(X|C) oznacza prawdopodobieństwo a-posteriori, że X należy do klasy C, • P(X) oznacza prawdopodobieństwo a-priori wystąpienia przykładu X Naiwny klasyfikator Bayesa (1) • Dany jest zbiór treningowy D składający się z n przykładów • Załóżmy, że atrybut decyzyjny przyjmuje m różnych wartości definiując m różnych klas Ci , i = 1, ..., m • Niech si oznacza liczbę przykładów z D należących do klasy Ci • Klasyfikator Bayesa przypisuje nieznany przykład X do tej klasy Ci, dla której wartość P(Ci|X) jest największa 2 2016-04-10 Naiwny klasyfikator Bayesa (2) • Prawdopodobieństwo P(X) jest stałe dla wszystkich klas - klasa Ci , dla której wartość P(Ci |X) jest największa, to klasa Ci , dla której wartość P(X| Ci ) * P(Ci ) jest największa • Wartości P(Ci ) zastępujemy estymatorami si/n (względną częstością klasy Ci ), lub zakładamy, że wszystkie klasy mają to samo prawdopodobieństwo P(C1 ) = P(C2 ) = ... = P(Cm) Naiwny klasyfikator Bayesa (3) • W jaki sposób obliczyć P(X|Ci )? • Dla dużych zbiorów danych, o dużej liczbie deskryptorów, obliczenie P(X|Ci ) będzie bardzo kosztowne • Wymaga ono oszacowania ogromnej liczby prawdopodobieństw i jest rzędu kp, gdzie p oznacza zmienne, natomiast k oznacza liczbę wartości tych zmiennych np. dla p=30 -> 230 czyli około 109 • Przyjmując założenie o niezależności atrybutów, możemy przyjąć, że wszystkie zmienne są warunkowo niezależne przy danych klasach. Wówczas możemy zastąpić prawdopodobieństwo warunkowe P(X|Ci) iloczynem prawdopodobieństw P(X|Ci ) = ∏j=1n P(xj | Ci ) Naiwny klasyfikator Bayesa (4) • Prawdopodobieństwa P(x1|Ci), P(x2|Ci), ..., P(xn|Ci) można estymować w oparciu o zbiór treningowy następująco: jeżeli j-ty atrybut jest atrybutem kategorycznym, to P(xj |Ci ) estymujemy względną częstością występowania przykładów z klasy Ci posiadających wartość xj dla j-tego atrybutu, (sij/si ) jeżeli j-ty atrybut jest atrybutem ciągłym, to P(xj |Ci ) estymujemy funkcją gęstości Gaussa (zakładając rozkład normalny wartości atrybutów) 3 2016-04-10 Przykład (1) • Rozważmy Przykład: Chcemy dokonać predykcji klasy, do której należy nowy przypadek – C1 (kupi_ komputer =‘tak’) – C2 (kupi _ komputer =‘nie’) • Nowy przypadek: – X = (wiek=‘<=30’, dochód=‘średni’, student = ‘tak’, status=‘kawaler’) – Maksymalizujemy wartość P(X/Ci )*P(Ci ), dla i=1,2 Przykład (2) Przykład (3) P(kupi_komputer = ‘tak’) = P(C1) = 9/14 = 0.643 P(kupi_ komputer = ‘nie’) = P(C2) = 5/14= 0.357 P(wiek <= ’30’ | kupi_ komputer = ‘tak’) P(wiek <= ’30’ | kupi_ komputer = ‘nie’) P(dochód = ’średni’ | kupi_ komputer = ‘tak’) P(dochód = ’średni’ | kupi_ komputer = ‘nie’) P(student = ‘tak’| kupi_ komputer = ‘tak’) P(student = ‘tak’| kupi_ komputer = ‘nie’) P(status = ‘kawaler’| kupi_ komputer = ‘tak’) P(status =‘kawaler’| kupi_ komputer = ‘nie’) = 2/9 = 0.222 = 3/5 = 0.6 = 4/9 = 0.444 = 2/5 = 0.4 = 6/9 = 0.667 = 1/5 = 0.2 = 6/9 = 0.667 = 2/9 = 0.4 4 2016-04-10 Przykład (4) Korzystając z obliczonych prawdopodobieństw, otrzymujemy: P(X| kupi_komputer=‘tak’) = 0.222 * 0.444 * 0.667 * 0.667 = 0.044 P(X| kupi_komputer=‘nie’) = 0.600 * 0.400 * 0.200 * 0.400 = 0.019 Stąd: P(X| kupi_ komputer=‘tak’) * P(kupi_ komputer=‘tak’) = 0.044 * 0.643 = 0.028 P(X| kupi_ komputer=‘nie’) * P(kupi_ komputer=‘nie’) = 0.019 * 0.357 = 0.007 Naiwny klasyfikator Bayesa zaklasyfikuje nowy przypadek X do klasy: kupi_komputer = ‘tak’ Problem „częstości zero” A co jeżeli dana wartość atrybutu nie występuje dla wszystkich klas? Przykładowo: wiek=’31..40’ dla klasy „nie’ – Prawdopodobieństwo wynosi 0, tj. P(wiek=’31..40’|kupi_komputer=‘nie’) = 0 – A-posteriori prawdopodobieństwo również wynosi 0 Rozwiązanie: dodać 1 do licznika wystąpień każdej pary <wartość atrybutu – klasa> (estymator Laplace’a) Podsumowanie - Naiwny klasyfikator Bayesa • Założenie o niezależności atrybutów znacznie redukuje koszt obliczeń • Jeżeli założenie jest spełnione, naiwny klasyfikator Bayes’a jest optymalny, tzn. zapewnia najlepszą dokładność klasyfikacji w porównaniu z innymi klasyfikatorami • Założenie rzadko spełnione w praktyce – jednakże naiwny klasyfikator Bayes’a jest zadziwiająco dokładny 5 2016-04-10 Maszyna wektorów nośnych • W przestrzeni danych (ang. measurement space) Ω znajduj ą si ę wektory danych x stanowiące próbkę uczącą D, należące do dwóch klas: • Szukamy klasyfikatora pozwalającego na podział całej przestrzeni Ω na dwa rozłączne obszary odpowiadającej klasom {1,-1} oraz pozwalającego jak najlepiej klasyfikować nowe obiekty x do klas • Podejście opiera się na znalezieniu tzw. granicy decyzyjnej między klasami → g( x ) Separowalność liniowa • Dwie klasy są liniowo separowalne, jeśli istnieje hiperpłaszczyzna H postaci g(x) • przyjmująca wartości • Jak poszukiwać takiej hiperpłaszczyzny granicznej? Liniowa funkcja separująca • Funkcja liniowa separująca • Wyznacza podział przestrzeni na obszary odpowiadające dwóm klasom decyzyjnym. • Oryginalna propozycja Fisher, ale tak że inne metody (perceptron, itp..) • Uogólnienia dla wielu klas. 6 2016-04-10 Support Vector Machine (SVM) • Znajdź liniową hiperpłaszczyzn ę (decision boundary) oddzielające obszary przykładów z dwóch różnych klas Support Vector Machine (SVM) • Jedno z możliwych rozwiązań Support Vector Machine (SVM) • Inne możliwe rozwiązanie 7 2016-04-10 Support Vector Machine (SVM) • Zbiór wielu możliwych rozwiązań Support Vector Machine (SVM) • Którą z hiperpłaszczyzn należy wybrać? B1 czy B2? • Czy można to formalnie zdefiniować ? Margines • Hiperpłaszczyzny bi1 i bi2 są otrzymane przez równoległe przesuwanie hiperpłaszczyzny granicznej aż do pierwszych punktów z obu klas. • Odległość między nimi – margines klasyfikatora liniowego • Jaki margines wybierać ? 8 2016-04-10 Węższe czy szersze marginesy? • Szerszy margines - lepsze własności generalizacji, mniejsza podatność na ew. przeuczenie (overfitting) • Wąski margines – mała zmiana granicy, radykalne zmiany klasyfikacji Liniowe SVM hiperpłaszczyzna graniczna • Vapnik – poszukuj „maximal margin classifier” gdzie w i b s ą parametrami modelu • Parametry granicy wyznaczaj tak, aby maksymalne marginesy bi1 i bi2 były miejscem geometrycznym punktów x spełniających warunki • Margines – odległość między płaszczyznami bi1 i bi2 Poszukiwanie parametrów hiperpłaszczyzny 9 2016-04-10 Linear Support Vector Machines • Sformułowanie problemu: • Przy warunkach ograniczających • Jest to problem optymalizacji kwadratowej z liniowymi ogr. → uogólnione zadanie optymalizacji rozwiązywany metodą mnożników Lagrange’a (tak aby np. nie dojść do w → 0) Niepełna liniowa separowalność • Co robić z LSVM gdy dane nie s ą w pełni liniowo separowalne? Zmienne dopełniające • Drzewo decyzyjne po wprowadzeniu wierzchołka ma postać: 10 2016-04-10 Zmienne osłabiające - interpretacja • Zmienne ξi≥0 (ang. Soft Margin) dobiera się dla każdego przykładu uczącego. Jej wartość zmniejsza margines separacji. (rodzaj „zwisu” punktu poza hiperpłaszczyzną nośną) • Jeżeli 0≤ ξi ≤1, to punkt danych (xi,di) leży wewnątrz strefy separacji, ale po właściwej stronie • Jeżeli ξi>1, punkt po niewłaściwej stronie hiperpłaszczyzny i wystąpi błąd klasyfikacji • Modyfikacja wymagań dla wektorów nośnych Nonlinear Support Vector Machines • Co zrobić gdy próby uczące powinny być nieliniowo separowalne? Kernel Trick • Transformacja do wysoce wielowymiarowej przestrzeni - tzw. Kernel Trick • Kernel Trick - metoda mapowania obserwacji z pewnego zbioru S na przestrzeń unitarną V bez konieczności tworzenia explicite samego mapowania w nadziei, ze nabiorą one tam sensownej struktury liniowej. 11 2016-04-10 Kernel Trick - Przykład • Kernelem nazywamy funkcję K(x, y), która dla x, y ∈ S jest iloczynem skalarnym w pewnej przestrzeni V . • Przykładowo mając mapowanie: • Kernelem jest po prostu: Dlaczego Kernel Trick • Dlaczego po prostu nie skonstruować mapowania i pracować na przestrzeni V zamiast S? 1. Złożoność obliczeniowa 2. O wiele trudniej znaleźć dobre mapowanie niż dobry kernel 3. Możliwość pracy na nieskończenie wymiarowych przestrzeniach. Najczęściej używane ’Kernele’ • Kernel wielomianowy: • Kernel Gaussowski: • Kernel sigmoidalny: • Kernel minimum (przecięcia histogramów): • Kernel logarytmiczny: • Budowanie kerneli: suma, iloczyn, iloczyn przez stałą dodatnią 12