Log 1 – Cargando BN con pyAgrum

A continuación veamos un ejemplo de una BN con su respectivas tablas de probabilidad…

Teniendo una idea general de la red bayesiana que queremos realizar (usemos la imagen como guía), pasemos a la implementación…


from pyAgrum import BayesNet, LabelizedVar, LazyPropagation

#Creamos nuestra red bayesiana vacia
myBN = BayesNet("Noche Calurosa")

#Cargamos los nodos

n = myBN.add(LabelizedVar('n','noche calurosa?',2))
c = myBN.add(LabelizedVar('c','cerveza?',2))
h = myBN.add(LabelizedVar('h','helado?',2))
a = myBN.add(LabelizedVar('a','llamar amigos?',2))

#LabelizedVar(nombre,comentario,cantidad de variables)

#insertamos los arcos
arcos = [(n,c),(n,h),(c,a),(h,a)]
for a in arcos:
 myBN.insertArc(a)

#Ahora cargamos nuestras tablas de probabilidades.

myBN.cpt(n)[:] = [0.5,0.5]

myBN.cpt(c)[:] = [[0.5,0.5],
 [0.1,0.9]]

myBN.cpt(h)[:] = [[0.8,0.2],
 [0.3,0.7]]

#otra forma de cargar la tabla puede ser:

bn.cpt(a)[0,0,:] = [1,0]

bn.cpt(a)[0,1,:] = [0.05,0.95]

bn.cpt(a)[1,0,:] = [0.90,0.10]

bn.cpt(a)[1,1,:] = [0.010,0.99]

Este código respecta a la creación de nuestra red bayesiana, más adelante veremos como realizar la inferencia y trabajar con
la evidencia.

Anuncios

Un pensamiento en “Log 1 – Cargando BN con pyAgrum

  1. Hola Celia 🙂 Es interesante este tema para mí, ya que yo desarrollo Redes Bayesianas desde hace 1 mes, pero con la librería de ProBT para C++, También soy programador en Python y me gustaría que se abarque más de este tema para que podamos aprender de la librería PyAgrum 🙂 Excelente Trabajo.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s