Imagina que has creado un filtro de spam basado en una serie de instrucciones condicionales (if). Si el asunto contiene la palabra FREE (gratis), márcalo como spam. Si la dirección del remitente termina en .ru, márcalo como spam. Si el correo contiene la frase wire transfer (transferencia bancaria), márcalo como spam.
Durante una semana todo parece funcionar bien, pero luego la eficacia del filtro empieza a decaer. Llegan nuevas estafas que evitan tus palabras clave, y correos legítimos son marcados erróneamente porque un compañero escribió “free lunch” (almuerzo gratis) en una invitación de calendario. Nada en el sistema está “roto” en el sentido de provocar un fallo o bloqueo del programa. Las reglas siguen ejecutándose exactamente como las escribiste, y ahí radica el problema.
Dado que el filtro basado en reglas no es suficiente, el siguiente paso es implementar un sistema cuya respuesta varíe tras observar lo que tú consideras correcto. Un programa aprende cuando el proceso de entrenamiento ajusta sus parámetros internos, de modo que el mismo correo de entrada genera un resultado más preciso (spam o no spam) que antes del entrenamiento.
Para ilustrarlo con un ejemplo concreto, imaginemos una bandeja de entrada reducida donde cada correo incluye una etiqueta (o label); esta etiqueta representa la respuesta correcta que esperas del programa, como spam o not_spam (no es spam). Este conjunto de ejemplos constituye los datos: entradas registradas asociadas a sus respectivas etiquetas. El programa no procesa los correos completos por arte de magia, sino que utiliza características (o features). Estas son propiedades observables y medibles de un correo, como "contiene la palabra invoice" (factura) o "el dominio del remitente termina en .biz".
Observa cómo los mismos correos etiquetados pueden generar resultados distintos antes y después del entrenamiento.
El aspecto clave es que el entrenamiento modifica el comportamiento del filtro sin necesidad de añadir nuevas instrucciones condicionales (if). El proceso de entrenamiento utiliza las etiquetas para ajustar la configuración interna hacia resultados que coincidan con dichas etiquetas con mayor frecuencia; de este modo, un mensaje que antes se clasificaba erróneamente pasa a clasificarse correctamente tras el ajuste.
Una vez que el filtro es capaz de adaptarse a partir de ejemplos, la siguiente cuestión es determinar qué tipo de cambio se considera aprendizaje. Si el programa se limita a memorizar los correos exactos utilizados en el entrenamiento, puede obtener una puntuación perfecta con ellos, pero fallar ante un nuevo intento de estafa redactado de forma distinta.
Ante un correo nuevo que el filtro no ha visto antes, ¿qué podría utilizar un sistema basado en patrones para clasificarlo sin tener que programar manualmente cada nueva táctica? Puede reutilizar características que a menudo se correlacionan con el spam en el conjunto de datos etiquetados, como la presencia de la palabra “invoice” (factura), dominios de remitente inusuales o una discrepancia entre el nombre del remitente y el dominio.
Compare cómo gestionan un correo desconocido un sistema de memoria por coincidencia exacta, un sistema de aprendizaje basado en patrones y un conjunto de reglas fijas.