Si quiero implementar un filtro de spam, ¿cuál es el algoritmo más simple y eficiente que debo usar?

* A2A *

Hay tres opciones (todas disponibles en Weka, así que no pierdas el tiempo intentando implementarlas):
1] Naive Bayes : este es prácticamente el estándar de oro para la mayoría de los problemas de clasificación de texto. Puede dar hasta un 90% de precisión para la clasificación de spam y aún más si ajusta las funciones *.
2] C4.5 – La siguiente mejor opción para los ingenuos bayes, sin embargo, la selección del modelo debe hacerse con cuidado. A veces puede sobreajustar los datos de entrenamiento. Una vez más, puede beneficiarse ajustando las funciones *.
3] Bosque aleatorio : se puede pensar en esto como una mejora con respecto a C4.5 y, de hecho, se puede evitar el problema de sobreajuste. Sin embargo, también se pueden ver los bosques aleatorios como el vecindario más cercano y, por lo tanto, heredar algunos de los mismos problemas que el vecindario más cercano puede tener. Por ejemplo, si sus datos de entrenamiento no se encuentran bien y están bien distribuidos, las porciones más densas de sus datos pueden ejercer sesgo. Esto generalmente no es un problema con la tarea de clasificación estándar, pero debe saber que la clasificación de spam no es exactamente una tarea de clasificación estándar. Lo que quiero decir con esto es que, cuando pensamos en la clasificación, la imagen inmediata que viene a la mente es:
Pero con la clasificación de spam, la imagen es más como esta:

donde los puntos rojos son spams y los verdes no son spams. No tomes esta foto demasiado literalmente. Aquí mi punto es resaltar que si bien el spam está bien definido y es coherente, el no-spam simplemente se define como un complemento y, por lo tanto, no necesita ser coherente.

Conclusión:
Definir buenas características * es una tarea mucho más desafiante en la clasificación de correo no deseado que implementar cualquiera de los métodos anteriores (nuevamente, permítame recordarle que sería aconsejable utilizar Weka, en lugar de implementar el suyo). Dependiendo de cómo sean sus datos de entrenamiento, cualquiera de los tres métodos anteriores puede darle un resultado muy bueno, por lo que debe probarlos todos y ver cuál se adapta mejor a la configuración que tiene.

* Independientemente del algoritmo de clasificación analizado, tendrá que trabajar en ingeniería de características (diseño de características relevantes aparte de la bolsa de palabras habitual) y selección de características (nuevamente use algoritmos de selección estándar de Weka en lugar de tratar de implementarlos por su cuenta).

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.