Autor JavaBayes:
Fabio Gagliardi Cozman PhD, Robotics Institute, Carnegie Mellon University.
Examples
.
Czytając niniejszy tutorial i podążając za instrukcjami tu
podawanymi można mieć uruchomiony program i wykonywać opisywane tu
czynności bezpośrednio w JavaBayes.
[Patrz: Instalacja programu]
Rozważmy popularną sieć. Sieć opisuje prostą sytuację opisującą problemy psa domowego. (plik w formacie XML)
Przypuśćmy, że wracamy do domu i chcemy
wiedzieć jakie jest prawdopodobieństwo tego, że światła będą włączone
oraz pies szczeka nie mając żadnych problemów żołądkowych.
Jeśli rodzina jest poza domem, często światła pozostały włączone
(to, chyba przed złodziejami).
Pies zwykle jest na podwórku właśnie wtedy gdy nie ma rodziny w domu
lub gdy ma problemy żołądkowe. Na dodatek, gdy
pies jest na podwórku to najczęściej szczeka.
Sieć Bayesowska dla tego przykładu podana jest na rysunku.
(skróty wyjaśnione są poniżej w tabeli).
[Fig 1 - Dog problem]
Tak wygląda powyższa sieć w programie JavaBayes
Poniżej mamy tabelę, która precyzuje prawdopodobieństwo poszczególnych zdarzeń warunkowych oraz ich dopełnień (dopełnienie zmiennej będziemy symbolizowali literką d).
Nazwa | Wartość | 1-Wartość |
---|---|---|
p(f) | 0.15 | 0.85 |
p(b) | 0.01 | 0.99 |
p(l|f) | 0.60 | 0.40 |
p(l|fd) | 0.05 | 0.95 |
p(d|f,b) | 0.99 | 0.01 |
p(d|f,bd) | 0.90 | 0.10 |
p(d|fd,b) | 0.97 | 0.03 |
p(d|fd,bd) | 0.30 | 0.70 |
p(h|d) | 0.70 | 0.30 |
p(h|dd) | 0.01 | 0.99 |
Skrót | Zmienna |
---|---|
f | rodzina poza domem (family-out) |
b | problem żołądkowy (bowel-problem) |
l | światła włączone (lights-on) |
d | pies poza domem (dog-out) |
h | słychać szczekanie (hear-bark) |
Zostawmy na chwilkę sieć DogProblem i przedstawmy krótko sam program JavaBayes.
Okno edycyjne może być w jednym z kilku trybów. Każdy z przycisków w tym oknie odpowiada za inny tryb (stan), w którym pracujemy.
Te tryby to:
Naciśnięcie każdego z 7 przycisków powoduje wejście w tryb. W takim trybie przyciski myszy (lewy, prawy) są interpretowane w specjalny sposób. (najlepiej się o tym przekonać, klikając samemu)
Istnieją 3 różne sposoby na operowanie sieciami bayesowskimi w programie:
Patrz: Formaty Sieci Bayesowskich
W celu stworzenia sieci:
Teraz, gdy już potrafimy stworzyć własną sieć oraz załadować sieć istniejącą, możemy spróbować edytować sieć.
W celu edycji zmiennej (np: dog-out):
W celu podania rozkładu prawdopodobieństwa tej zmiennej, wchodzimy w tryb
.
Tu pokazuje się nam okno z wartościami zmiennej, w którym wypełniamy te
wartości.
[Fig. X - Edycja zmiennej losowej family_out
[Fig. X - Edycja zmiennej losowej dog-out
Przypuśćmy, że chcemy zbadać prawdopodobieństwo zdarzenia:
p(light_on|hear_bark, not-bowel_problem), |
Program JavaBayes umożliwia nam zbadanie takiego prawdopodobieństwa. Aby to zrobić, należy ustawić zmienną "hear-bark" na true, a zmienną "bowel-problem" na false, a następnie w trybie Observe kliknąć na zmienną "light-on". W oknkie z komunikatami pokażą się interesujące nas wartości.
Aby to zrobić, należy:
[Fig. X - Tak ustawiamy zmienną do "obserwacji"]
[Fig. X - Przykładowy wydruk po zapytaniu]
Na podstawie przedstawionych tu informacji, czytelnik powinien poradzić sobie z typowymi zadaniami związanymi z zapytaniami do sieci Bayesowskich.
tar xfvz javaBayes.tgz
)
cd javaBayes/
java JavaBayes
UWAGA.
Z powodu ograniczeń JVM, nie można ładować plików lokalnych. Ale, można
ładować pliki zdalne (na podstawie URL).
Należy skorzystać z menu: File -> Open URL..
i wpisać
poniższy adres:
http://www.ii.uni.wroc.pl/~nthx/school/ai/javabayes/app/Examples/DogProblem/dog-problem.xml
Jeśli masz problemy z uruchomieniem apletu, pomocna może się okazać lektura: http://java.sun.com/products/plugin/