EN For privacy reasons, we urge all users to activate the “Private profile” checkbox in their profile settings. DE Aus Datenschutzgründen empfehlen wir allen, in ihren Profil-Einstellungen „Private profile“ zu aktivieren.
"Mittels MCMC-Verfahren kann in *PRIMO* auch approximierte Inferenz berechnet werden. Hier wird das gleiche Beispiel wie bei der exakten Inferenz verwendet:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%matplotlib inline\n",
"from primo.networks import BayesianNetwork\n",
"from primo.nodes import DiscreteNode\n",
"import numpy\n",
"\n",
"# Netz initialisieren\n",
"bn = BayesianNetwork()\n",
"\n",
"# Knoten und deren m\u00f6gliche Zust\u00e4nde festlegen\n",
"Um MCMC zu initialisieren sind mindestens zwei Parameter notwendig: Das Bayesnetz selbst und die Anzahl der Iterationen.\n",
"</p>\n",
"<p>Optional k\u00f6nnen auch das \u00dcbergangsmodell und das Limit f\u00fcr den Konvergenztest bei der Berechnung der Markov-Kette gesetzt werden.\n",
"Im Beispiel wird gezeigt, wie mit MCMC a-priori und a-posteriori Wahrscheinlichkeiten, sowie die Evidenzwahrscheinlichkeit (<i>Probability of Evidence</i>) und die MAP-Hypothese berechnet werden k\u00f6nnen."
"<p>MCMC (siehe <a href=\"chapters/belief_approx.ipynb\">Belief Networks - Approximierte Inferenz</a>) kann neben diskreten auch mit kontinuierlichen Variablen Inferenzen ziehen. Allerdings kann ein Bayesnetz nur aus kontinuierlichen oder nur aus diskreten Variablen bestehen, eine Berechnung auf einem Netz, wo diese Typen vermischt sind, ist aktuell noch nicht m\u00f6glich.\n",
"</p>\n",
"<p>\n",
"Sowohl bei der Parametrisierung von Knoten als auch bei der Inferenz k\u00f6nnen Verteilungen angegeben werden. Diese sind in `primo.densities` implementiert, dort bereits enthalten sind: Beta-Verteilung, Exponential-Verteilung und Gauss-Verteilung.\n",
"</p>\n",
"<p>\n",
"Im folgenden Beispiel ist ein Bayesnetz modelliert, welches das lineare Verh\u00e4ltnis zwischen Alter und H\u00f6he einer Pflanze modelliert, zuz\u00fcglich Rauschen.\n",
"Zur Inferenz auf kontinuierlichen Netzen k\u00f6nnen die gleichen Funktionen wie auf diskreten Netzen verwendet werden. (F\u00fcr die Parameter des MCMC-Konstruktors siehe ebenfalls <a href=\"chapters/belief_approx.ipynb\">Belief Networks - Approximierte Inferenz</a>).\n",
"</p>\n",
"<p>\n",
"Bei den R\u00fcckgabewerten werden die Verteilungsparameter angegeben. Im Beispiel f\u00fcr die Gauss-Verteilung sind dies \"`mu`\" f\u00fcr den Erwartungswert $\\mu$ und \"`c`\" f\u00fcr die Standardabweichung $\\sigma$.\n",
"</p>\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from primo.inference.mcmc import MCMC\n",
"from primo.evidence import EvidenceEqual as EvEqual\n",
"Im Folgenden werden verschiedene Methoden f\u00fcr die exakte Inferenz vorgestellt. Daf\u00fcr soll das Beispiel aus *A. Darwiche - Modeling and Reasoning with Bayesian Networks, S. 54* dienen:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%matplotlib inline\n",
"from primo.networks import BayesianNetwork\n",
"from primo.nodes import DiscreteNode\n",
"import numpy\n",
"\n",
"# Netz initialisieren\n",
"bn = BayesianNetwork()\n",
"\n",
"# Knoten und deren m\u00f6gliche Zust\u00e4nde festlegen\n",
"<i>(zuerst den Beispiel-Code aus <a href=\"#inferenz\">Exakte Inferenz</a> ausf\u00fchren)</i><br>\n",
"<i>EasiestFactorElimination</i> bildet zun\u00e4chst den Joint Probability Table (jpt), um anschlie\u00dfend auf die angefragten Variablen abzubilden:"
"<i>(zuerst den Beispiel-Code aus <a href=\"#inferenz\">Exakte Inferenz</a> ausf\u00fchren)</i><br>\n",
"<i>FactorTree</i> ist bei gro\u00dfen Netzen und/oder vielen Anfragen effizienter als <i>EasiestFactorElimination</i>. Die erste Anfrage ist zwar aufw\u00e4ndig, daf\u00fcr werden die folgenden Anfragen viel schneller verarbeitet.\n",
"Nach ver\u00e4nderter Evidenz m\u00fcssen zun\u00e4chst alle zwischengespeicherten Werte neu berechnet werden, was wieder relativ teuer ist, anschlie\u00dfend jedoch wieder zu schnellerer Verarbeitung f\u00fchrt.\n",
"\n",
"Im Beispiel werden die Berechungen f\u00fcr Marginals, sowohl a-priori sowie a-posteriori und die Berechnung der Evidenzwahrscheinlichkeit (<i>Probability of Evidence</i>) dargestellt."