Wstęp do sieci bayesowskich

Transkrypt

Wstęp do sieci bayesowskich
Wstęp do sieci bayesowskich - Zadania
Piersa Jarosław
2009-03-03
Wzór na prawdopodobieństwo warunkowe:
Ważne wzory
P(A|B) =
P(A ∧ B)
P(B)
Wzór na prawdopodobieństwo całowite:
X
P(A) =
P(A|B = v)P(B = v)
v
Wzór Bayesa:
P(B|A) =
P(A|B)P(B)
P(A)
Zadanie 1 Dana niech będzie sieć bayesowska. Tabele prawdopodobieństw warunkowych
wyglądają następująco:
P(A = t)
0.4
P(A = f )
0.6
war
A=t
A=f
P(B = t|war)
0.25
1.0
P(B = f |war)
0.75
0.0
war
A=t
A=f
P(C = t|war)
0.75
0.5
P(C = f |war)
0.25
0.5
Skonstruuj tę sieć bayesowską. Oblicz prawdopodobieństwa:
• P(B = t), P(B = f )
• P(C = t), P(C = f )
• P(A = t|C = t), P(A = f |C = t)
• P(A = t|B = t), P(A = t|B = f )
• P(C = t|B = t)
• P(B = t|C = t)
1
Zadanie 2 Problem Monty Hall, „Idź na całość”, „Let’s make a deal”... Uczestnik konkursu wybiera jedną z trzech bramek, za jedną z niech jest nagroda, za dwiema nie ma nic.
Uczestnik nie wie co kryją bramki. Prowadzący (wie gdzie jest nagroda) odsłania uczestnikowi jedną z bramek, w której nie ma nagrody, a której uczestnik nie wybrał — zawsze
jest taka bramka, czasem jest tylko jedna. Uczestnik otrzymuje możliwość zamiany „swojej
bramki” na tę drugą nieodsłoniętą. Czy największe prawdopodobieństwo wygranej jest gdy
zamieni bramkę, gdy zachowa swoją bramkę, czy być może nie ma to wpływu na wygraną?
Skonstruuj sieć bayesowską symulującą rozgrywkę (wskazówka: wystarczą trzy węzły).
Zadanie 3 Rozważmy uogólnione zadanie 2 w którym mamy n bramek — w jednej jest
nagroda w pozostałych nic. Uczestnik wybiera jedną z bramek, a prowadzący odsłania mu
m z pozostałych, w których nie ma nagrody (m = 1..n − 2). Pozostają przynajmniej dwie
bramki (dokładniej n− m) w tym jedna uczestnika. Uczestnik otrzymuje możliwość zamiany
swojej bramki na jedną z nieodsłoniętych. Czy powinien zamienić, zachować bramkę czy nie
ma to wpływu na wygraną.
Skonstruuj sieci bayesowskie rozwiązujące ten problem dla kilku różnych par (n, m) np:
(3, 1), (4, 1), (4, 2) , (5, 1), (5, 2), (5, 3), (10, 8), (100, 98)... Dla dużych n pomyśl o bardziej kompaktowym rozwiązaniu (tabele prawdopodobieństw dla n = 100 będą miały 10000
pozycji!).
Zadanie 4 Na pewną chorobę (Iksodalna Igrekoskoza Zetocyny) choruje 2% populacji.
Istnieje na nią test, który daje odpowiedź poprawną w 95 przypadkach na 100 (zarówno
pozytywną jak i negatywną). U losowego badanego test wykazał wynik pozytywny. Czy
faktycznie jest powód do niepokoju? Skonstruuj sieć bayesowską rozwiązującą ten problem
(2 węzły).
Zadanie 5 Do sieci z zadania 3 dodaj węzeł(y) obliczający nagrodę w wypadkach gry ze
zmianą bramki i gry bez zmiany (można odobno). Następnie wygeneruj instancje danych na
podstawie sieci (Cases ->Simulate Cases) dla obu przypadków. W arkuszu kalkulacyjnym,
pakiecie statystycznym lub ręcznie policz jaki jest odsetek wyników, w których uczestnik
wygrał, wśród wszystkich wyników, w których grał tą samą taktyką. Czy zgadza się ze
wskazaniami sieci? Wykonaj podobne symulacje dla sieci z innych zadań.
Zadanie 6 Błądzenie losowe. Niech dane będzie 5 punktów p1 ..p5 . Określamy ciąg zmiennych losowych Xn . X0 zaczyna w losowym z punktów (losowanym z rozkładu jednostajnego).
Jeżeli Xn jest w punkcie pj to Xn+1 z prawdopodobieństwem 0.5 przejdzie do pj+1 i z prawdopodobieństwem 0.5 przejdzie do pj−1 dla j = 2, 3, 4. Jeżeli jest to stan brzegowy to z
prawdopodobieństwem 0.5 Xn+1 pozostanie w tym samym punkcie i z pradopodobieństwem
0.5 przejdzie do jedynego sąsiada.
Skonstruuj sieć bayesowską symulującą ten proces dla pierwszych 10 kroków.
Zadanie programisyczne Napisz program pozwalający wygenerować, wczytać lub wylosować sieć bayesowską, a następnie generujący instancje wyników dla tej sieci (patrz zadanie
5). Powinna być możliwość ustawienia struktury sieci i tabel prawdopodobieństw warunkowych przynajmniej na poziomie kodu programu. Ewentualnie można wczytywać pliki z siecią
wygenerowaną w innych pakietach (Netica). Mile widziane są dodatkowe opcje np: zapis
wyników do pliku tekstowego, edytor sieci i tabel prawdopodobieństw, możliwość podglądu,
praktyczne zastosowanie z wizualizacją (np. sieć sterująca robotem w kolejnych iteracjach,
na podstawie wygenerowanych wyników robot podejmuje określone działanie).
Język programowania — dowolny, ale rozwiązania korzystające z gotowych bibliotek dla
sieci bayesowskich nie będą akceptowane.
Punktacja — 1 punkt.
Termin oddawania — 31.03.2009.
2