Entendiendo Naive Bayes en terminos simples..



Naive Bayes es el modelo mas simple y basico en machine learning, pero que a pesar de su simplicidad da buenos resultados. Sin embargo tengo que admitir que soy muy mala entendiendo este tipo de cosas, y encontre este articulo que explica Naive Bayes en terminos muy simples y que me sirvio antes de entender como hacer los calculos y demas.  Me gusto mucho asi que decidi publicar la traduccion. 


La Selección de caramelo 
Escrito por: Pararth Shah

En las afueras de Mumbai, vivía una vieja abuela, cuya cuantitativa perspectiva hacia la vida la había ganado el apodo de la abuelita de Estadística. Vivía sola en una enorme mansión, donde se practica el análisis estadístico de sonido, protegido de la lluvia de sesgos.

Cada año en su cumpleaños, toda su familia la visitaba y se quedaba en la mansión. Hijos, hijas, sus cónyuges, sus nietos. Era una gran fiesta todos los años, con mucha fanfarria. Pero lo que la abuela más amaba era estar con sus nietos y llegar a jugar con ellos. Tenía diez nietos en total, todos ellos alrededor de 10 años de edad, y ella amorosamente los llamaría "variables aleatorias".


Cada año, la abuela daba un caramelo a cada uno de los niños. La abuela tenía una gran caja llena de caramelos de diez tipos diferentes. Ella daría un solo caramelo a cada uno de los niños, ya que ella no quería echar a perder sus dientes. Pero, como ella amaba a los niños tanto, le tomaba un gran esfuerzo decidir qué dulces dar a cada niño, de tal manera que  maximize su felicidad plena (la estimación de máxima verosimilitud, como ella lo llamaría).

Pero eso no fue una tarea fácil para la abuela. Sabía que cada tipo de dulces tenía una cierta probabilidad de volver a un niño feliz. Esa probabilidad era diferente para los distintos tipos de dulces, y para diferentes niños. Rakesh le gusta el caramelo rojo más que el verde, mientras que Sheila le gusta el color naranja por encima de todo. Cada uno de los 10 niños tenían diferentes preferencias para cada uno de los 10 caramelos. Por otra parte, sus preferencias dependían en gran medida de factores externos que eran desconocidos (variables ocultas) a la abuela. Si Sameer había visto un edificio azul en el camino a la mansión, él querría un caramelo azul, mientras que Sandeep siempre quiso que el caramelo que hacía juego con el color de su camisa de ese día. Pero el mayor desafío fue que su felicidad dependia de los caramelos que los otros niños consiguieron! Si Rohan consiguió un caramelo rojo, entonces Niyati querría un caramelo rojo, y cualquier otra cosa sería ir a llorar en los brazos de su madre (de dependencia condicional). Sakshi siempre queria lo que la mayoría de los niños se llevó (correlación positiva), mientras Tanmay sería más feliz si nadie más tiene el tipo de dulces que recibió (correlación negativa). La abuela había concluido hace mucho tiempo que sus nietos eran completamente mutuamente dependientes.

Fue computacionalmente una gran tarea para la abuela seleccionar los dulces de forma correcta. Había demasiadas condiciones a tener en cuenta y no podía simplificar el cálculo. Cada año antes de su cumpleaños, ella se pasaba días averiguar la asignación óptima de los caramelos, enumerando todas las configuraciones de caramelos para todos los niños juntos (que era una tarea exponencialmente cara). Ella se estaba haciendo vieja, y la tarea fue cada vez más difícil. Ella solía sentir que moriría antes de averiguar la selección óptima de los caramelos que harían sus nietos mas felices a la vez.

Pero ocurrió algo interesante. A medida que los años pasaron y los niños crecieron, y finalmente pasaron a la adolescencia y se convirtieron en adultos independientes. Sus opciones se volvieron menos y menos dependiente de los demás, y se hizo más fácil de averiguar  el caramelo preferido de cada uno (todos ellos aún amaban los caramelos, y a la abuela). La abuela no tardó en darse cuenta de esto, y ella con alegría comenzó llamándolos "variables aleatorias independientes". Era mucho más fácil para ella para averiguar la selección óptima de los caramelos - ella sólo tenía que pensar en un niño a la vez y, para cada niño, asignar una felicidad probable por cada uno de los tipos  de 10 caramelos para ese niño. Entonces ella recogería los dulces con la probabilidad más alta de felicidad para ese niño, sin preocuparse de lo que iba a asignar a los otros niños. Esta fue una tarea muy fácil, y la abuela fue finalmente capaz de hacer las cosas bien.

Ese año, los niños fueron finalmente los más felices todos a la vez, y la abuela lo paso muy bien en su fiesta de cumpleaños número 100. Unos meses después de ese día, la abuela falleció, con una sonrisa en su cara y una copia de Sheldon Ross agarrado en la mano.

Para entender: En el modelado estadístico, tener variables aleatorias mutuamente dependientes hace que sea muy difícil de averiguar la asignación óptima de los valores para cada variable que maximiza la probabilidad acumulada del conjunto. Es necesario enumerar sobre todas las configuraciones posibles (lo que aumenta de manera exponencial por el número de variables). Sin embargo, si las variables son independientes, es fácil escoger las tareas individuales que maximizan la probabilidad de cada variable, y luego combinar las tareas individuales para obtener una configuración para todo el conjunto.

En Naive Bayes, se hace la suposición de que las variables son independientes (aunque en realidad no lo son). Esto simplifica el cálculo, y resulta que en muchos casos, en realidad da estimaciones que son comparables a los que se habría obtenido de un modelo (computacionalmente) caro que si tenga en cuenta las dependencias condicionales entre las variables.

No he incluido ninguna matemáticas en esta respuesta, pero espero que esto haga más fácil de comprender el concepto detrás de Naive Bayes, y acercarse a las matemáticas con confianza. (La página de Wikipedia es un buen comienzo: Naive Bayes).


La version original se encuentra AQUI. Espero poder escribir mas cosas sobre machine learning mas adelante, y ojala les haya servido! 

Comentarios