¿Qué algoritmos son los mejores para el filtrado de spam? ¿Cómo deberían implementarse?

El filtro de spam moderno es altamente sofisticado, se basa en múltiples señales y, por lo general, las señales son más importantes que el clasificador.

Sin embargo, un mecanismo de filtrado fresco y fácil de implementar es Bayesian Spam Filtering [1]. La idea básica es utilizar el teorema de Bayes para determinar la probabilidad de que un correo electrónico determinado sea spam, dadas las palabras en este correo electrónico. Si [math] S [/ math] es el evento de un correo electrónico dado que es spam y [math] w [/ math] es una palabra en el correo electrónico, lo clasificaremos como spam con probabilidad:
[matemáticas] \ Pr (S | w) = \ frac {\ Pr (w | S) \ cdot \ Pr (S)}
{\ Pr (w | S) \ cdot \ Pr (S) + \ Pr (w | \ overline {S}) \ cdot \ Pr (\ overline {S})}
[/mates]
dónde:
[math] \ Pr {(S)} [/ math] es la probabilidad anterior, que debe establecerse en la proporción esperada de spam.
[math] \ Pr (w | S) [/ math] y [math] \ Pr (w | \ overline {S}) [/ math] se calculan fácilmente contando simplemente la aparición de cada palabra en spam y no spam correos electrónicos en los datos de entrenamiento.

[math] \ Pr (S | w) [/ math] se denomina probabilidad posterior, que se puede calcular utilizando la probabilidad anterior de ser spam y la probabilidad de que la palabra dada aparezca en correos no deseados y no deseados. Por lo tanto, su clasificador está capacitado utilizando algunos datos para determinar estas probabilidades de palabras, que también se pueden ajustar cuando un usuario indica que un nuevo correo electrónico es spam o viceversa.

Los filtros sofisticados tienen mucho más en juego para el filtrado, como la reputación del remitente y el filtrado Bayes no es difícil de resolver por sí solo, pero es una pequeña aplicación divertida de inferencia bayesiana. Lectura recomendada [1] para más detalles.

[1] http://www.paulgraham.com/spam.html

Es bueno estudiar técnicas de aprendizaje supervisado. Se han realizado varios estudios en los que el clasificador multinomial ingenuo de Bayes se ha utilizado para el filtrado de correo electrónico no deseado con mucho éxito. Si funcionó para el filtrado de correo electrónico no deseado, entonces debería funcionar con el filtrado de SMS. Lo que necesita es un gran conjunto de datos de mensajes de texto SMS de spam y capacitar al clasificador con él.

Además, puede ser útil buscar en la máquina de vectores de soporte, que; aunque menos utilizado en el filtrado de spam; Es una técnica mucho más poderosa. El mejor filtro de spam para empresas

Además, solo entrenar los algoritmos en texto sin formato puede no ser la mejor manera de avanzar. Hubo un estudio realizado por Mehran Sahami de 1998 que descubrió que lograron un rendimiento superior cuando tomaron en cuenta otras heurísticas (por ejemplo, ¿se envió el correo electrónico a una lista de correo? ¿Se envió el correo electrónico desde un nombre de dominio que terminó en “.edu”? , “. com”, “. org”? ¿el correo electrónico contenía múltiples signos de puntuación (“!!!”) ?, y así sucesivamente).

Pero comience con el clasificador multinomial ingenuo de Bayes. Es muy simple de implementar, y es muy fácil de usar, y por experiencia personal: también tiene un tiempo de entrenamiento muy corto.

Hola, el filtrado de spam es un asunto un poco más amplio hoy en día que hace algunos años. Todavía podemos confiar en los filtros basados ​​en texto bayesiano, pero este tipo de técnica es muy vulgar, ya que mediante el uso de tokenización, ataque estático u ofuscación, la migración del filtro se sesga fácilmente. Entonces algunas otras características son necesarias. Manteniendo la regla DRY, consulte esta publicación: Identificación de spam en las redes sociales. La idea principal es describir los problemas de las redes sociales, pero ofrece una visión general más general de las contramedidas que podrían usarse.

Publicaciones
Graham, mejor filtrado bayesiano (2003):
http://www.paulgraham.com/better

Software
http://projecthoneypot.org/

Andrew ng explica muy bien el diseño básico del sistema de aprendizaje automático para la clasificación de spam. Consulte este enlace https://class.coursera.org/ml-20

El proyecto SpamBayes entra en muchos detalles.
http://spambayes.sourceforge.net

More Interesting

MLconf 2015 Seattle: ¿Cuándo uso la normalización de varianza media / unidad cero frente a la normalización de unidad L1 / L2?

¿Qué pasaría si las máquinas escribieran algunas de las preguntas sobre Quora?

¿Cuál es la diferencia entre la clasificación de vectores de soporte y la regresión? ¿Un regresor de vectores de soporte se comporta como una red neuronal por casualidad?

¿Qué significa realmente el aprendizaje automático en términos reales?

¿Cuáles son los proyectos de aprendizaje automático más populares en Github?

¿Dónde está el mejor lugar para trabajar en investigaciones de IA?

¿Cuáles son algunas optativas de matemáticas avanzadas útiles para un estudiante universitario en CS (junior) que se inclina hacia el aprendizaje automático para la escuela de posgrado?

¿Hay alguna manera de determinar o reducir las opciones con las que uno debería experimentar para mejorar (por ejemplo) una red neuronal clasificadora de imágenes binarias?

MLconf 2015 Seattle: ¿Cómo funciona la técnica de aproximación simbólica agregada (SAX)?

Cómo lidiar con una matriz escasa de pares de elementos de usuario mientras se construye un sistema de recomendación de filtrado colaborativo basado en perceptrón

¿Cómo podría una máquina / sistema de IA identificar una oración sarcástica?

¿Por qué las variedades son importantes para el aprendizaje profundo o el aprendizaje de refuerzo profundo?

¿Cuál es la diferencia entre el aprendizaje automático y el análisis de datos?

¿Cómo se compara Python con R para el análisis de datos y el aprendizaje automático?

¿Es posible usar la red neuronal para predecir múltiples valores respetando ciertas condiciones?