¿Qué es SBN?
SBN se refiere a “Redes Bayesianas Estructuradas” (Structured Bayesian Networks, en
inglés) que es una técnica de modelado y análisis de datos utilizada en el campo de la
inteligencia artificial y el aprendizaje automático. En una Red Bayesiana las variables del
sistema se representan como nodos en un grafo dirigido acíclico es decir que la dirección de
los enlaces es relevante y en el que nunca puede suceder que en un camino entre dos
nodos, el nodo inicial o el final, estén repetidos (DAG). En esta las conexiones entre nodos
representan las relaciones de dependencia entre las variables. Cada nodo está asociado
con una distribución de probabilidad condicional que describe la probabilidad de que la
variable que representa tome un valor dado, dadas las probabilidades de las variables de
las que depende directamente en el grafo. Es útil para problemas en los que se requiere
modelar la incertidumbre y la causalidad de varias variables. Puede utilizarse para hacer
inferencias probabilísticas y para predecir la probabilidad de eventos futuros basándose en
los datos observados.
¿Cómo funciona la aplicación de una RBE?
La aplicación de una Red Bayesiana Estructurada (RBE) generalmente implica los
siguientes pasos:
1. Identificación de las variables y sus relaciones:Es identificar las variables relevantes
del sistema y las relaciones de dependencia entre ellas. Esto puede involucrar la
recolección de datos, el conocimiento de expertos.
2. Creación del modelo gráfico: Una vez que se han identificado las variables y sus
relaciones, se crea un modelo gráfico en forma de un grafo dirigido acíclico (DAG).
Cada nodo en el grafo representa una variable, y las flechas que conectan los nodos
representan las relaciones de dependencia entre ellas.
3. Especificación de las distribuciones de probabilidad condicional: Cada nodo en el
grafo se asocia con una distribución de probabilidad condicional que describe la
probabilidad de que la variable tome un valor dado, dadas las probabilidades de las
variables de las que depende directamente en el grafo. La especificación de estas
distribuciones puede ser basada en datos, en el conocimiento de expertos o en una
combinación de ambos.
4. Inferencia: Una vez que se ha construido el modelo gráfico y especificado las
distribuciones de probabilidad condicional, se pueden realizar inferencias para
responder preguntas sobre el sistema. Esto puede involucrar la propagación de
probabilidades a través del grafo para calcular la probabilidad conjunta de las
variables, la identificación de las variables más influyentes en el sistema, o la
simulación de diferentes escenarios para evaluar el impacto de la incertidumbre en
las decisiones.
5. Validación y actualización del modelo: El último paso es validar y actualizar el
modelo a medida que se obtienen nuevos datos o se adquiere un mayor
conocimiento del sistema. Esto puede implicar la comparación de las predicciones
del modelo con datos observados, la identificación de las limitaciones del modelo y
la actualización de las distribuciones de probabilidad condicional o la estructura del
grafo para mejorar la precisión del modelo.
En resumen, la aplicación de una RBE se nota que en muchos de los problemas cotidianos
pueden ser resueltos con esta técnica de IA por su capacidad de inferir conocimientos sobre
otros previamente conocidos, su capacidad de aprendizaje la hacen una técnica muy
utilizada a nivel mundial.
Ventajas y desventajas de las Redes Bayesianas Estructuradas (SBN)
Ventajas:
1. Representación gráfica intuitiva: las SBN nos permiten visualizaciones claras de las
relaciones de dependencia entre las variables del sistema, facilitando así la
comprensión y comunicación de las características del modelo.
2. Interpretabilidad: las SBN son altamente interpretables, lo que significa que es fácil
entender cómo se relacionan las diferentes variables del modelo, combinando así los
datos objetivos y subjetivos (juicio de expertos).
3. Manejo de incertidumbre: se permite modelar la incertidumbre en el sistema y
proporcionan herramientas para analizar el impacto de esta incertidumbre en las
decisiones que se toman a partir del modelo (información incompleta o incierta).
4. Eficiencia computacional: las redes bayesianas estructuradas son capaces de
realizar inferencias rápidas y precisas sobre las relaciones entre variables.
5. Inferencia eficiente: las SBN permiten una inferencia probabilística eficiente en
sistemas complejos, lo que las hace útiles en aplicaciones que requieren un análisis
de decisiones en tiempo
6. Flexibilidad: las SBN son muy flexibles y pueden ser utilizadas en una amplia gama
de problemas, desde problemas de diagnóstico médico hasta problemas de
reconocimiento de patrones.
Desventajas:
1. Necesidad de datos: Las redes bayesianas estructuradas requieren una gran
cantidad de datos para aprender la estructura y las relaciones entre las variables.
2. Dificultad en la construcción de la red: La construcción de una red bayesiana
estructurada puede ser compleja y requiere experiencia y conocimientos
especializados en estadística y teoría de la probabilidad.
3. Complejidad computacional: el proceso de inferencia en SBN puede ser
computacionalmente costoso y requerir mucho tiempo, especialmente para modelos
con muchas variables y relaciones.
4. Dificultad en la evaluación de la precisión: Es difícil evaluar la precisión de las redes
bayesianas estructuradas, ya que dependen de suposiciones sobre las
distribuciones de probabilidad subyacentes a los datos.
Aplicaciones de las Redes Bayesianas Estructuradas (SBN)
● Análisis de riesgos: Las SBN son una herramienta valiosa para evaluar riesgos en
una variedad de campos. Por ejemplo, en la industria de la salud, las SBN se
pueden utilizar para evaluar los riesgos asociados con enfermedades y tratamientos
médicos, y en la ingeniería, las SBN se pueden utilizar para evaluar los riesgos
asociados con el diseño de edificios y estructuras. Las SBN también se utilizan en la
evaluación de riesgos financieros, donde pueden ayudar a los inversores a identificar
los riesgos asociados con los activos y los mercados financieros.
● Diagnóstico médico: Las SBN son útiles en el campo de la medicina porque pueden
modelar la relación entre síntomas, enfermedades y factores de riesgo. Esto puede
ayudar a los médicos a hacer diagnósticos más precisos ya planificar el tratamiento
adecuado para los pacientes. Por ejemplo, las SBN se han utilizado para la
detección temprana de enfermedades como el cáncer de mama y la diabetes.
● Reconocimiento de patrones: Las SBN se pueden utilizar para el reconocimiento de
patrones en una variedad de aplicaciones. En la visión por computadora, por
ejemplo, las SBN se han utilizado para identificar objetos en imágenes y para el
seguimiento de objetos en videos. En el procesamiento del lenguaje natural, las SBN
se han utilizado para la identificación de temas en textos y para la traducción
automática.
● Sistemas recomendadores: Las SBN se utilizan en sistemas de recomendación para
predecir las preferencias de los usuarios y recomendar productos, servicios y
contenidos. Por ejemplo, una SBN se puede utilizar para recomendar películas a un
usuario en función de las películas que ha visto anteriormente y sus calificaciones.
● Modelado de procesos empresariales pueden: Las SBN se utilizan para modelar y
analizar procesos empresariales complejos, como la producción, la logística y el
marketing. Las SBN pueden ayudar a los gerentes a identificar los factores clave que
reducen el rendimiento del negocio y tomar decisiones informadas sobre cómo
mejorar la eficiencia y la rentabilidad de sus operaciones.
Código
A continuación aplicaremos el SBN en Python usando el siguiente ejemplo:
En la imagen observamos un grafo acíclico dirigido. Donde tenemos una primera variable
denominada “Cloudy” donde nos dice que existe 50% de probabilidad de que exista un día
nublado o soleado. Luego, se tiene un “Sprinkler” que tiene relación con “Cloudy” (soleado o
nublado) y esta tiene su tabla de condición probabilística (CPD) y lo mismo para “Rain”,
tenemos que existe una probabilidad de 80% de que llueva y que esté nublado o que exista
un 80% de probabilidad de que no llueva y esté nublado.
El resultado de combinar “Sprinkler” y “Rain” la pregunta es ¿El pasto está mojado? En la
imagen se puede observar la tabla de valores de sus correspondientes probabilidades.
Entonces, teniendo en cuenta todo lo anterior se puede usar la librería de python llamado
pgmpy (Probabilistic Graphical Models in Python) para crear un modelo de probabilidad
usando el ejemplo anterior.
Primero, importamos la librería pgmpy:
Una vez que tenemos listo el modelo recién podemos realizar inferencia probabilística, es
decir, para calcular la probabilidad posterior de un conjunto de variables dadas algunas
evidencias. Puede hacer esto utilizando algoritmos de inferencia como Variable Elimination
o Belief Propagation.
Otra inferencia que se puede calcular es la probabilidad posterior de ‘wet_grass’ dado que
‘cloudy’ es falso y ‘sprinkler’ es verdadero.
La salida del código es la probabilidad posterior de que el pasto se moje dado que el cielo
no está nublado y que el aspersor se active. En este caso, la probabilidad posterior de que
el pasto se moje es 0.918, lo que indica que hay una probabilidad del 92% de que el pasto
se moje si el cielo no está nublado y que el aspersor se active.