Para la detección de spam en el correo electrónico se comparan los resultados de los algoritmos de árboles de decisión y el método de "ensemble" de bagging.
Algoritmos empleados: Árboles de decisión y Bagging
Para un breve resumen del algoritmo de árboles de decisión mirar el post Árboles de decisión. Detección de churn.
Bagging (Bootstrap Aggregating) es un algortimo de “ensemble” (ensamblaje), esto es, básicamente consiste en unir algoritmos simples para obtener otros más potentes. Los más usados son los de bagging y boosting (ver otro post).
Modelos bagging
Los primeros tienen como objetivo la reducción de la varianza: sobre diferentes muestras aleatorias del set de entrenamiento se obtienen modelos predictivos simples diferentes. Por último, se ensamblan todos ellos en un único modelo, que es el promedio de los anteriores (en casos de regresión) o el más votado (en casos de clasificación).
Este algoritmo es especialmente recomendable en modelos con alta varianza (en caso contrario no mejora significativamente los resultados). Además, reduce el sobreaprendizaje ya que cada modelo simple es independiente del anterior, con muestras aleatorias diferentes.
Random forest (ver otro post) es una técnica que emplea el bagging, pero además de emplear muestras aleatorias en cada paso, también utiliza diferentes variables.
Modelos boosting
Los modelos boosting siguen un procedimiento secuencial: cada modelo está relacionado con el anterior, teniendo en cuenta sus errores, es decir, cada modelo mejora al anterior.
El objetivo de estos es reducir el sesgo. Finalmente, en casos de clasificación se selecciona el modelo predictivo final mediante votación, mientras que en casos de regresión se emplea una suma ponderada.
Son recomendables estas lecturas:
Amat Rodrigo, J. Árboles de decisión, random forest, gradient boosting y C5.0.
Características del caso
Se emplea el data set incluido en la librería de "kernlab" de R. Para ver una descripción puede consultarse UCI. Básicamente consta de 4601 observaciones con 47 variables, una de las cuales indica si el mensaje era efectivamente spam. El resto de variables informa si una palabra determinada estaba incluida en una mensaje.
El objetivo del caso es predecir la probabilidad de que un determinado mail sea spam o no lo sea, en función de las palabras y caracteres que incluye el mensaje.
Proceso
1. Entorno
El primer punto tratará sobre la preparación del entorno, donde se mostrará la descarga de las librerías empleadas y la importación de datos.
2. Análisis descriptivo
Se mostrarán y explicarán las funciones empleadas en este paso, dividiéndolas en tres grupos: Análisis inicial, Tipología de datos y Análisis descriptivo (gráficos).
3. Preparación de la modelización
Donde se tratará
a. Preselección de variables predictoras
b. Funciones para la modelización
c. Particiones del dataset en dos grupos: training (70%) y test (30%)
4. Modelización
Por motivos didácticos, se dividirá la modelización de los dos algoritmos en una sucesión de pasos.
Para ver el código en R y los resultados:
En HTML: RPubs
En pdf: GitHub
Kommentare