Muszę wykonać pewne wnioskowania na temat sieci bayesowskiej, takie jak przykład, który stworzyłem poniżej. Wnioskowanie w sieci bayesowskiej
Szukałem czegoś takiego jak to, aby rozwiązać takie wnioski, jak P (F | A = Prawda, B = Prawda). Moje pierwsze podejście było zrobić coś takiego
For every possible output of F
For every state of each observed variable (A,B)
For every unobserved variable (C, D, E, G)
// Calculate Probability
Ale nie sądzę, że to będzie działać, ponieważ faktycznie musimy przejść przez wiele zmiennych na raz, nie każdy na raz.
Słyszałem o algorytmie Pearls do przekazywania wiadomości, ale jeszcze nie znalazłem odpowiedniego opisu, który nie jest wyjątkowo gęsty. Aby uzyskać dodatkowe informacje, te sieci bayesowskie są ograniczone, aby nie mieć więcej niż 15-20 węzłów i mamy wszystkie tabele prawdopodobieństwa warunkowego, kod nie musi być naprawdę szybki ani wydajny.
Zasadniczo szukam sposobu, aby to zrobić, niekoniecznie NAJLEPSZY sposób to zrobić.
Czy Twój wykres jest tylko przykładem, czy zaobserwowano wszystkie najważniejsze zmienne? –
Algorytm przekazywania komunikatów Pearl dotyczy tylko sieci bez pętli. Istnieją dokładne algorytmy dla sieci loopy zmiennych dyskretnych i Gaussa, ale nie są one proste. Moja rada to znaleźć oprogramowanie do wykonywania obliczeń, więc wszystko, co musisz zrobić, to wprowadzić opis sieci (zmienne, połączenia i tabele prawdopodobieństwa) i uruchomić zapytania. Dostępne są zarówno komercyjne, jak i niekomercyjne oprogramowanie; przepraszam, nie mam rekomendacji. –
wykres był tylko przykładem, górne zmienne nie zawsze są ściśle przestrzegane – suphug22