Así que, ahora, vamos a ver un ejemplo en una red real, y trataremos de ver como es el aspecto de una CPD, cuál es el comportamiento que obtenemos, y cómo podríamos aumentar la red para incluir cosas adicionales. Ahora, déjenme advertirles por adelantado que se trata de una red de juguete, no es una red real, aunque es lo suficientemente compacta como para mirarla, pero aún lo suficientemente interesante como para obtener algunos comportamientos no triviales. Por lo tanto, para explorar la red, vamos a utilizar un sistema llamado SAMIAM. Fue producido por Adnan Darwiche y su grupo de la UCLA, y es bueno porque en realidad funciona en todo tipo de plataformas diferentes, así que puede ser utilizado por cualquiera. Así que echemos un vistazo a un problema particular: Imaginemos que somos una compañía de seguros y estamos tratando de decidir para una persona que llega si se le da seguro o no. Así, el aspecto operativo para tomar esa decisión es cuanto nos va a costar la póliza, es decir, cuánto vamos a tener que pagar en el transcurso de un año para asegurar a esta persona. Por lo tanto hay una variable llamada "Cost". Vamos a hacer clic sobre él para ver qué propiedades tienen esa variable. Y podemos ver que en este caso, hemos decidido dar sólo dos valores para la variable "Cost", Bajo y Alto. Esto es claramente una aproximación muy de grano grueso y no una que vayamos a utilizar en la práctica. En realidad, es probable que ésta sea una variable continua cuyo entendimiento depende de varios aspectos del modelo. Sin embargo, para los propósitos de nuestro ejemplo, vamos a utilizar esta distribución discreta que sólo tiene valores Bajo y Alto. Está bien. Así que ahora, vamos a construir esta red mediante la técnica de "ampliar la conversación" que mencionamos antes. Así que, ¿cuál es el factor determinante más importante en cuanto a costos que la compañía de seguros tiene que pagar? Bueno, probablemente si la persona tiene accidentes y qué tan severos son. Así que aquí tenemos una red que tiene dos variables: una es "Accident" y la otra es "Cost". Y en este caso hemos decidido seleccionar tres valores posibles para la variable "Accident", Ninguno, Leve y Severo, y con las probabilidades que ven en la lista. Y lo que se ve abajo es la variable "Cost". Y abrimos la CPD de la variable "Cost" dada la variable "Accident". Y podemos ver que, en este caso, tenemos una tabla de probabilidad condicional de "Cost" dado "Accident". Noten que esto en realidad está invertido respecto a la notación que hemos utilizado en la clase anterior, porque acá los casos condicionados son columnas, mientras que en los ejemplos que hemos dado han sido filas. Pero eso está bien, es la misma cosa, sólo invertida. Y así vemos, por ejemplo, que si la persona no tiene accidentes, es muy probable que los costos sea muy bajos. Accidentes leves incurre en distribuciones diferentes sobre los costos. Y los accidentes graves tienen una probabilidad de 0,9 de tener alto costo y 0,1 de tener un bajo costo. Así que ahora, vamos a seguir ampliando la conversación y preguntar que depende de "Accident". Y parece ser que uno de los factores obvios es si la persona es un buen conductor o no. Y así podríamos esperar que la calidad del conductor sea un padre de "Accident". Pero hay otras cosas que también afectan no sólo la presencia de un accidente, sino también la gravedad del accidente. Así, por ejemplo, el tamaño del vehículo afectaría la gravedad de un accidente porque si están conduciendo una SUV de gran tamaño, entonces es probable que no tengan un accidente tan grave, pero a su vez quizás podría aumentar la probabilidad de tener un accidente global, ya que a lo mejor un coche grande es más difícil de manejar. Y entonces, el año del vehículo podría afectar las posibilidades de un accidente debido a la presencia o ausencia de ciertas características de seguridad como los frenos antibloqueo y airbags. Así que vamos a abrir la CPD de "Accident" y vemos como luce ahora que tenemos todos los padres para ella. Y podemos ver acá que tenemos, en este caso, ocho casos condicionados, correspondiente a tres variables, dos valores cada uno. Y acá, sólo para ver una una de las muestra de la distribución, por ejemplo, si se trata de un vehículo bastante nuevo (después de 2000) y es una SUV, la probabilidad de tener un accidente grave es muy baja, y la probabilidad de tener un accidente leve es moderada, y la probabilidad de no tener accidentes es de 0,85. Mientras que si se compara con la entrada correspondiente cuando mantenemos todo fijo, excepto que ahora es un coche compacto, vemos que la probabilidad de tener un accidente leve es menor, pero la probabilidad de no tener accidentes es mayor, representando patrones de conducción diferentes, por ejemplo. Bien, entonces con esta red podemos empezar a hacer preguntas simples. Así que, para dar algún ejemplo de inferencia causal, vamos a instanciar, por ejemplo, "Driving_quality" en Bueno, y en Malo. Y podemos ver que para un mal conductor la probabilidad de un costo bajo es 81%. Y para un buen conductor de la probabilidad de un costo bajo es 87%. Si nos fijamos en los accidentes se puede ver que para un buen conductor hay una probabilidad de 87,5% de no tener accidentes y 10% de tener un accidente leve. Y la probabilidad de no tener accidentes baja para un mal conductor, y accidentes leves sube, y accidentes graves también se va hacia arriba. Ahora, tengan en cuenta que muchas de estas diferencias son muy sutiles. Hay una diferencia de un par de puntos porcentuales de una manera u otra. Y se podría pensar que, si estuvieran diseñando una red, les gustaría que estos cambios de probabilidad sean realmente extremos cuando se instancias valores distintos. Pero en muchos casos esto no es realmente cierto, y estas diferencias sutiles son en realidad muy importante para una compañía de seguros que asegura cientos de miles de personas. Un par de puntos porcentuales en la probabilidad de un accidente puede hacer una gran diferencia a la propia rentabilidad. Así que ahora vamos a pensar en cómo podríamos expandir esta red aún más. El tamaño de vehículo y año del vehículo son cosas que podemos observar en el foro de seguros. Pero la calidad del conductor es muy difícil de observar. No se puede preguntarle a alguien: "Oh, ¿eres un buen conductor?" Porque todo el mundo va a decir: "Claro, soy el mejor conductor!". Por lo tanto no va a ser una cuestión de gran utilidad. Entonces, ¿qué evidencias podemos observar que nos podrían indicar el valor de la calidad de conductor? Una obvia es el registro de conducir de la persona. Es decir, si ha tenido accidentes anteriores o infracciones anteriores. Por lo tanto, vamos a pensar en añadir una variable que representa la historia de conducción. Y así vamos a introducir esa variable. Por lo tanto, puede hacer clic en este botón que nos permite crear un nodo. El nodo ahora se llama "variable1" por lo que tenemos que darle un nombre. Así, por ejemplo, vamos a llamarlo "DrivingHistory". Y ese es su identificador, y también tenemos el nombre de la variable, que es generalmente el mismo. Y vamos a darle dos valores, digamos PreviousAccident y NoPreviousAccident. Ahora, ¿dónde vamos a poner esta variable en la red? Uno podría pensar inicialmente que hay que colocar "DrivingHistory" como padre de "Driver_quality" porque el historial de conducción puede influenciar nuestras creencias sobre la calidad del conductor. Ahora, es verdad que la observación del historial de conducción cambia nuestra probabilidad de la calidad del conductor, pero si piensan en la propia estructura causal de esta situación, lo que realmente tenemos es que la calidad del conductor es un factor causal tanto de un accidente anterior como un accidente posterior. Y lo que si queremos mantener es la estructura causal intuitiva del dominio, algo más adecuado es añadir "DrivingHistory" como hijo en lugar de padre de "Driver_quality". Pueden preguntarse por qué es importante, y en este ejemplo muy sencillo los dos modelos son, en cierto sentido equivalentes y podríamos haberlas colocado de cualquier manera, excepto que la CPD de la calidad del conductor dado el historial de conducción puede ser un poco menos intuitivo. Pero si tuviéramos otros indicadores de calidad del conductor, por ejemplo, una infracción anterior, entonces en realidad tiene mucho más sentido tener todos ellos como hijos de la calidad del conductor en vez de padres de la calidad del conductor. Está bien. Esto nos muestra cómo podemos añadir una variable a la red. Y ahora vamos a abrir una red mucho más grande que incluye estas variables y otras. Miramos ahora en esta red más grande, y podemos ver que hemos añadido algunas variables diferentes a la red. Hemos añadido atributos del vehículo, por ejemplo, si el vehículo tenía frenos antibloqueo y airbag, que nos va a permitir dar probabilidades más informativas sobre el accidente. También hemos introducido aspectos del conductor, por ejemplo, si ha tenido una ruta de entrenamiento extra, que va a aumentar la calidad de conducción, si es joven o viejo, donde se supone que las personas más jóvenes tienden a ser conductores más imprudentes, y si el conductor es enfocado o fácilmente distraído, que a su vez va a afectar a la calidad de conducción. Ahora bien, como el tipo de personalidad es difícil de observar, añadimos otra variable que es "Good_student" lo que podría indicar el tipo de personalidad. Así que vamos a abrir la CPD para este, y así podemos ver acá que, por ejemplo, si sos una persona enfocada y joven, es mucho más probable que seas un buen estudiante, mucho más que si no sos una persona enfocada y joven. Si sos viejo, no es muy probable que seas un estudiante, por lo que esta probabilidad básicamente dice que si sos viejo, no es muy probable que seas un estudiante, y por lo tanto no es probable ser un buen estudiante. Así que, ahora que hemos añadido todas estas variables a la red, vamos a seguir adelante y ejecutar algunas consultas para ver qué pasa. Y vamos a empezar por mirar la probabilidad a priori de "Accident" antes de observar nada. Podemos ver que la probabilidad de ningún accidente es cercana al 79,5%. La probabilidad de accidente grave es de aproximadamente 3%. Ahora vamos a seguir adelante y decirle al sistema que tenemos un buen estudiante en cuestión. Así que vamos a observar que el estudiante es un buen estudiante, y vamos a ver qué pasa. Podemos ver, sorprendentemente, que a pesar de que se observa que alguien es un buen estudiante, la probabilidad de ningún accidente se redujo de 79,5% a 78%, y la probabilidad de accidentes graves subió de 3,5% a 3,67%. Ustedes pueden decir: "Bueno, pero me dijo que es un buen estudiante, ¿No debería bajar la probabilidad de accidentes?" Así que echemos un vistazo a algunos caminos activos en este grafo. Un camino activo pasa desde "Good_student" a "Focused", a "Driver_quality", a "Accident". Y es bastante seguro que, si tenemos en cuenta ese camino de forma aislada, probablemente va a hacer que la probabilidad de ningún accidente sea mayor. Sin embargo, tenemos otro camino activo. Tenemos el camino activo que va de "Good_student" hasta "Age", y luego hacia abajo, a través de "Driver_quality". Por lo tanto, para ver esto, vamos a desmarcar en buen estudiante y ver qué pasa. Noten que inicialmente la probabilidad de que el conductor sea joven era del 25%, pero cuando observé un buen estudiante, subió a cerca de 95%. Y eso fue suficiente para contrarrestar la influencia a lo largo de este camino activo más evidente. Así que, para demostrar que esto es precisamente lo que está pasando, hagamos click para instanciar el hecho de que el estudiante es joven, y podemos ver que la probabilidad de accidente grave subió hasta el 3,7% y ningún accidente bajó un poco por debajo del 77%. Y ahora vamos a observar buen estudiante y ver qué pasa. Así que ahora observamos buen estudiante, y la probabilidad de ningún accidentes se fue a 78%, a diferencia del anterior, cuando era 77%. Y la razón de esto es que ahora hemos bloqueado este camino que va de buen estudiante, a través de la edad, a la calidad del conductor mediante la observación de esta variable que bloquea el camino. Así podemos ver que los patrones de razonamiento en una red bayesiana a veces son sutiles. Y hay diferentes caminos que pueden afectar a las cosas y interactúan entre sí de diferentes maneras. Y de esta manera, es útil tomar el modelo y jugar con diferentes consultas y diferentes combinaciones de evidencias para entender el comportamiento de una red. Y especialmente si están diseñando dicha red para una aplicación particular, es útil para probar las diferentes consultas y ver si el comportamiento que se obtiene es el comportamiento que desean conseguir. Y si no, entonces necesitan preguntarse ¿cómo puedo modificar esta red para obtener un comportamiento que es más similar a la conducta deseada?. Esta red está disponible para que jueguen y puedan probar diferentes cosas y ver qué comportamientos se obtienen.