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

Podobne dokumenty