Los clasificadores Naive Bayes son técnicas estadísticas de filtrado de correo electrónico populares. Se suelen utilizar un conjunto de palabras características para identificar los correos basura, un enfoque común en la clasificación de textos.

Los clasificadores Naive Bayes trabajan correlacionados al uso de tokens (por lo general palabras o algunas veces otras cosas), con mensajes de correo electrónico que no son correo basura y otros que sí lo son. Utilizando después el Teorema de Bayes para calcular la probabilidad de que un correo electrónico sea o no correo basura.

El filtrado de correo basura bayesiano es una técnica de línea de base para tratar con el correo basura, se puede adaptar a las necesidades de correo electrónico de los usuarios individuales y dar pocos índices de falsos positivos en la detección de correo basura, que son generalmente aceptables para los usuarios. Es una de las formas más antiguas de hacer filtrado de correo basura, con raíces en la década de 1990.

Historia El primer programa de filtrado de correo conocido por utilizar un clasificador de Naive Bayes era el programa iFile de Jason Rennie, lanzado en 1996. El programa fue utilizado para ordenar el correo dentro de las carpetas. La primera publicación académica sobre filtro bayesiano fue por Sahami et al. en 1998. Ese trabajo se desplegó poco después en filtros comerciales de correo basura. Sin embargo, en 2002 Paul Graham disminuyó en gran medida la tasa de falsos positivos, por lo que podría ser utilizado por sí mismo como un solo filtro de correo basura.Paul Graham (2003), Better Bayesian filteringBrian Livingston (2002), Paul Graham provides stunning answer to spam e-mails

Las variantes de la técnica básica se han aplicado en una serie de trabajos de investigación y de software comerciales de productos. Muchos clientes de correo modernos tienen implementado el filtrado de correo basura bayesiano. Los usuarios también pueden instalar diferentes programas de filtrado para email. Por parte de los servidores existen filtros de correo electrónico tales como: CRM114, correo basura, correo basura Assassin, correo basura Bayes, Bogofilter y Anti-correo basura SMTP Proxy, que hacen uso de técnicas de filtrado de correo basura bayesiano, y la funcionalidad es a veces embebida dentro del servidor de correo del propio software.

Proceso Palabras particulares tienen determinadas probabilidades de ocurrir en el correo electrónico, correo basura y en el correo electrónico legítimo. Por ejemplo, la mayoría de los usuarios de correo electrónico con frecuencia se encontrará con la palabra "Viagra" en el correo electrónico basura, pero rara vez pueden verlo en otro correo electrónico. El filtro no sabe estas probabilidades de antemano, y debe primero ser entrenado para que pueda aprender. Para entrenar el filtro, el usuario debe indicar manualmente si un nuevo correo electrónico es correo basura o no. Las palabras de los correos entrantes serán guardadas en la base de datos del filtro con una probabilidad que será ajustada según su aparición o no en el correo de correo basura. Por ejemplo, los filtros bayesianos de correo basura normalmente habrán aprendido una muy alta probabilidad de correo basura para las palabras "Viagra" y "refinanciar", pero una probabilidad muy baja de correo basura para las palabras que se ven solo en el correo electrónico legítimo, como los nombres de amigos y miembros de la familia.

Después del entrenamiento, las probabilidades de las palabras (también conocida como funciones de verosimilitud) se utilizan para calcular la probabilidad de que un correo electrónico con un determinado conjunto de palabras pertenece a una u otra categoría. Cada palabra en el correo electrónico contribuye a la probabilidad de que este correo sea correo basura, o solo las palabras más interesantes. Esta contribución se llama la probabilidad posterior y se calcula utilizando el Teorema de Bayes. Entonces, la probabilidad de correo basura se calcula sobre todas las palabras en el correo electrónico, y si el total supera un determinado umbral (digamos 95%), el filtro marcará el correo electrónico como correo basura.

Al igual que en cualquiera otra técnica de filtrado de correo basura el correo electrónico marcado como correo basura, se puede mover de forma automática a una carpeta de correo electrónico "basura", o incluso eliminarse por completo. Algunos programas de software implementan mecanismos de cuarentena que definen un marco de tiempo durante el cual se le permite al usuario revisar la decisión del software.

El entrenamiento inicial por lo general puede ser refinado cuando los juicios erróneos del software son identificados (falsos positivos o falsos negativos). Eso permite que el software pueda adaptarse dinámicamente a la naturaleza siempre cambiante de los correos basura.

Algunos filtros de correo basura combinan los resultados del filtro bayesiano con otras heurísticas ((reglas predefinidas sobre el contenido, búsqueda específica dentro del mensaje, etc.), lo que resulta en una mayor precisión de filtrado, a veces a costa de la capacidad de adaptación.

Fundamentos matemáticos Los filtros de correo electrónico bayesianos utilizan el Teorema de Bayes. El teorema de Bayes se utiliza varias veces en el contexto de correo basura: una primera vez, para calcular la probabilidad de que el mensaje es correo basura, sabiendo que una palabra dada aparece en este mensaje; por segunda vez, para calcular la probabilidad de que el mensaje es correo basura, teniendo en cuenta la totalidad de sus palabras (o un subconjunto relevante de ellos); a veces una tercera vez, para hacer frente a las palabras raras.

Cálculo de la probabilidad de que un mensaje que contiene una palabra dada es correo basura Supongamos que el mensaje sospechoso contiene la palabra "réplica". La mayoría de las personas que están acostumbrados a recibir correos electrónicos saben que este mensaje es probable que sea un correo no deseado, más precisamente una propuesta para vender copias falsificadas de marcas conocidas de relojes. El software de detección de correos no deseados, sin embargo, no "sabe" tales hechos; todo lo que puede hacer es probabilidades de cómputo.

La fórmula utilizada por el software para determinar que se deriva del Teorema de Bayes es:

dónde:

es la probabilidad de que un mensaje es un correo no deseado, a sabiendas de que la palabra "réplica" está en él; es la probabilidad general de que cualquier mensaje dado es correo basura; es la probabilidad de que la palabra "réplica" aparece en los mensajes de correo basura; es la probabilidad general de que cualquier mensaje dado no es correo basura (es "legítimo"); es la probabilidad de que la palabra "réplica" aparece en los mensajes legítimos.

La basurabilidad de una palabra en el correo Estadísticas recientes muestran que la probabilidad actual de cualquier mensaje sea correo basura es del 80%, como mínimo:

Sin embargo, la mayoría del software de detección de correo basura bayesiano hace la suposición de que no hay ninguna razón a priori para cualquier mensaje entrante sea un correo no deseado en lugar de legítimo, y considera en ambos casos tener probabilidades iguales de 50%:

Los filtros que utilizan esta hipótesis se dice que son "no sesgados", lo que significa que no tienen prejuicios con respecto a los correos electrónicos entrantes. Este supuesto permite la simplificación de la fórmula general:

Esto es funcionalmente equivalente a preguntar: "¿qué porcentaje de las apariciones de la palabra" réplica "aparecen en los mensajes de correo basura?"

Esta cantidad se denomina basurabilidad (del término inglés spamicity) de la palabra "réplica", y se puede calcular. El número utilizado en esta fórmula es aproximado a la frecuencia de los mensajes que contienen "réplica" en los mensajes identificados como correo basura durante la fase de aprendizaje. Del mismo modo, se aproxima a la frecuencia de los mensajes que contienen "réplica" en los mensajes identificados como legítimos durante la fase de aprendizaje. Por estas aproximaciones para dar sentido, el conjunto de mensajes de aprendizaje tiene que ser lo suficientemente grande y representativo. También es recomendable que el conjunto de aprendizaje de los mensajes se ajuste al 50% de hipótesis acerca de reparto entre correos basura y correos legítimos, es decir, que los conjuntos de datos de correos no deseados y el de correos legítimos sean del mismo tamaño.Process Software, Introduction to Bayesian Filtering

Por supuesto, para determinar si un mensaje es correo basura o legítimo basado solo en la presencia de la palabra "réplica" es propenso a errores, por lo que el software de correo basura bayesiano intenta considerar varias palabras y combinar sus correo basurabilidades para determinar la probabilidad global de un mensaje de ser un correo no deseado.

Combinaciones de probabilides individuales La mayoría de los algoritmos de filtrado de correo basura bayesiano se basan en fórmulas que son estrictamente válidas (desde un punto de vista probabilístico) solo si las palabras presentes en el mensaje son eventos independientes. Esta condición no se cumple en general (por ejemplo, en las lenguas naturales como el Inglés, la probabilidad de encontrar un adjetivo se ve afectada por la probabilidad de tener un sustantivo), pero es una idealización útil, sobre todo porque las correlaciones estadísticas entre palabras individuales no suelen ser conocidas. Sobre esta base, se puede derivar la siguiente fórmula del teorema de Bayes: at MathPages

dónde: es la probabilidad de que el mensaje sospechoso es correo no deseado; es la probabilidad que es saber un correo basura que contiene una primera palabra (por ejemplo, "réplica"); es la probabilidad que es saber un correo basura que contiene una segunda palabra (por ejemplo, "relojes"); etc... es la probabilidad que es saber un correo basura que contiene una n-ésima palabra (por ejemplo, "casa").

Esta es la fórmula que hace referencia Paul Graham en su artículo de 2002. Algunos comentarios tempranos decían que "Graham sacó sus fórmulas de la nada",http://mail.python.org/pipermail/python-dev/2002-August/028216.html Tim Peter's comment on the algorithm used by Graham pero Graham en realidad había referenciado a su fuente, que incluye una explicación detallada de la fórmula, y las idealizaciones sobre las que él se basa.

Los software de filtrado de correo basura basados en esta fórmula se refieren a veces como un Clasificador Naive Bayes. El resultado de p se suele comparar con un umbral dado para decidir si el mensaje es correo basura o no. Si p es menor que el umbral, el mensaje se consideraba probable legítimo, de lo contrario se considera como probable correo basura.

Otra expresión de la fórmula para la combinación de probabilidades individuales

Generalmente p no se calcula directamente usando la fórmula anterior debido al punto flotante underflow. En su lugar, p puede ser calculada en el dominio de logaritmos reescribiendo la ecuación original de la siguiente manera:

Tomando los logaritmos en ambos lados:

Dejar . Por consiguiente,

De ahí que la fórmula alternativa para el cálculo de la probabilidad combinada:

Tratamiento para palabras raras En el caso de que una palabra no se ha conocido durante la fase de aprendizaje, tanto el numerador como el denominador son iguales a cero, tanto en la fórmula general y en la fórmula basurabilidad del correo. El software puede decidir descartar tales palabras para las cuales no hay información disponible.

En términos más generales, las palabras que se encuentran a solo un par de veces durante la fase de aprendizaje causan un problema, porque sería un error confiar ciegamente la información que proporcionan. Una solución sencilla es simplemente evitar la adopción de tales palabras no fiables, no tenerlas en cuenta.