« ¿Qué es la inteligencia? Portada Ejemplo de Aplicación Lineal »

17 septiembre 2006


Spam. ¿Cómo funcionan los filtros bayesianos?

Alfonso Jiménez

SpamEl spam (correo basura en castellano) es uno de los grandes problemas de la red. El uso de filtros para intentar controlar el tráfico de estos correos es muy importante. Uno de los filtros más eficientes que se conocen son los filtros bayesianos. Este filtro está basado en el teorema de Bayes para determinar un correo electrónico como spam o no. El teorema probabilístico de Thomas Bayes resulta útil cuando conocemos el resultado final de un experimento, pero desconocemos alguno de los pasos intermedios en el que estamos interesados. El teorema de Bayes viene dado por el siguiente enunciado: Sea {B1, B2,… , Bn} un sistema completo de sucesos con P(Bi) > 0 para todo i. Si A es un suceso cualquiera se verifica:

Teorema de Bayes


  • P(Bi): probabilidades a priori

  • P(Bi/A): probabilidades a posteriori

  • P(A/Bi): verosimilitudes

El primero en hablar de filtros bayesianos fue Mehran Sahami en el año 1998. Ganó bastante atención en el año 2002 cuando Paul Graham publicó en un periódico A plan for spam, donde describe su funcionamiento (incluye algunos ejemplos).

La probabilidad de que un correo electrónico sea spam, considerando que haya ciertas palabras en él, es igual a la probabilidad de encontrar esas ciertas palabras en un correo basura por la probabilidad de que algún correo sea spam, dividido entre la probabilidad de encontrar esas palabras en algún correo. Esto matemáticamente es:

Teorema de Bayes

El filtro bayesiano necesita una base de datos que contenga palabras y otros criterios (direcciones IP, hosts,…), para calcular la probabilidad de que un correo determinado sea spam, sacados de un ejemplo de correo basura y de correo válido. A cada palabra se le establece un valor de probabilidad basado en la frecuencia de aparición de dicha palabra en un correo basura frente a un correo válido. Estas asignaciones se realizan a través de un proceso de análisis del correo. Por ejemplo, si la palabra viagra aparece en 600 de 2000 correos de spam y en 3 de 200 correos válidos, la probabilidad de ser spam es 0,9524. De este modo el filtro bayesiano se adapta al usuario, pues si se trata de una empresa de software tratará con mayor probabilidad de spam la palabra viagra que por ejemplo una empresa de productos farmacéuticos, que posiblemente la frecuencia de aparición de viagra en sus correo válidos sea mayor, por lo que la probabilidad de que sea spam disminuye.

Disponiendo de la base de datos el filtro podrá actuar. Cuando se recibe un nuevo correo, el análisis consiste en descomponer el texto en palabras y se seleccionan las más relevantes, las cuales el filtro bayesiano procesará calculando la probabilidad de que el correo que hemos recibido sea spam o no. Si la probabilidad supera un umbral establecido se considerará spam.

Fuentes | Bayesian spam filtering en Wikipedia
Fuentes | GFI Hispana
Fuentes | A plan for spam, P. Graham (2002)

Más noticias sobre:  Matemáticas
Comentarios (8) | Trackback


Comentarios

Filtros bayesianos contra el spam

Explicación de como funcionan los filtros bayesianos antispam del estilo del que trae Thunderbird.

#1 | Escrito por meneame.net | 17 sep 2006 11:18:14

Alfonso, si no me equivoco, Paul Graham no publicó "A plan for spam" en un periódico, sino que lo hizo en su página web. Supongo que la confusión viene de la traducción del inglés de paper, que en este contexto se refiere a un artículo y no a un periódico :)

Aparte de eso, estupenda explicación.

#2 | Escrito por Sacha Fuentes | 17 sep 2006 11:22:58

Buenas Sacha. La verdad es que tuve dudas al traducirlo, de hecho el artículo que he enlazado de "A plan for spam" (muy recomendable) aparece en su página web. De todos modos no sé si fue publicado en algún periódico o revista, a ver si alguien puede confirmarlo.

Un saludo!

#3 | Escrito por Alfonso Jiménez | 17 sep 2006 12:28:46

Muy interesante este artículo. Sobre todo por la forma didáctica en que lo has enseñado. Un blog que merece ser frecuentado y leido. Felicidades Alfonso.

#4 | Escrito por alberto | 17 sep 2006 16:07:13

Gracias Alberto. Cómo decía Séneca, largo es el camino de la enseñanza por medio de teorias, breve y eficaz por medio de ejemplos.

Un saludo

#5 | Escrito por Alfonso Jiménez | 17 sep 2006 16:23:37

¿Cómo funcionan los filtros Bayesianos?

Seguro que muchos habéis escuchado "filtro bayesiano" más de una vez, quedándoos igual que estábais antes. Otros, como yo, aunque poca idea teníais del tema, automáticamente relacionaríais "fitro bayesiano" con "filtro antispam". En Genciencia n...

#6 | Escrito por genbeta | 17 sep 2006 17:39:48

Filtrar correo basura basado en imágenes

Ayer nos explicaban en Genciencia como funcionan los filtros bayesianos, pero lamentablemente los spammers cada días se sacan un as de la manga y mientras alguien encuentra el camino para eliminarlos con eficiencia, pues estamos fastidiados los que r...

#7 | Escrito por genbeta | 18 sep 2006 17:20:27

muy inteseante y muy bien explicado.. me aclaraste muchas dudas.. gracias compadre!! ..
puro genbeta.com son poderosos..

#8 | aldo rosales | 18 sep 2006 22:41:18

¡Añade tu comentario!


Noticias relacionadas

24 octubre 2008 | Quiz: solución a la paradoja del cumpleaños
18 octubre 2008 | Quiz Genciencia: cumpleaños
14 octubre 2008 | Aquiles y la tortuga
13 octubre 2008 | Definición y algunos tipos de matrices
11 octubre 2008 | ¿Halcón o paloma? Teoría de juegos y cooperación.

 
Web www.genciencia.com