Proceedings Template - WORD - Departamento de Ingeniería
Transcription
Proceedings Template - WORD - Departamento de Ingeniería
Clasificación de e-mails: Detección de Spam Sonia Collada Pérez Rubén Gálvez Carranza Universidad Carlos III Universidad Carlos III Madrid Madrid [email protected] [email protected] OBJETIVO En este artículo se tratará el problema de clasificación de e-mails en correo deseado y no deseado (spam). 1. INTRODUCCIÓN El principal objetivo de este artículo es analizar información relativa a un conjunto de correos electrónicos para poder filtrar el correo no deseado, para esto se emplea la herramienta de análisis Weka, un programa de código abierto y que implementa una gran variedad de algoritmos de aprendizaje muy útiles en tareas de minería de datos. 1.1 Minería de datos La minería de datos engloba un conjunto de técnicas encaminadas a la extracción de conocimiento procesable, implícito en las bases de datos [18]. sacrificar la calidad del modelo de conocimiento obtenido del proceso de minería. Extracción de Conocimiento: Mediante una técnica de minería de datos, se obtiene un modelo de conocimiento, que representa patrones de comportamiento observados en los valores de las variables del problema o relaciones de asociación entre dichas variables. También pueden usarse varias técnicas a la vez para generar distintos modelos, aunque generalmente cada técnica obliga a un preprocesado diferente de los datos. Interpretación y Evaluación: Una vez obtenido el modelo, se debe proceder a su validación, comprobando que las conclusiones que arroja son válidas y suficientemente satisfactorias. En el caso de haber obtenido varios modelos mediante el uso de distintas técnicas, se deben comparar los modelos en busca de aquel que se ajuste mejor al problema. Si ninguno de los modelos alcanza los resultados esperados, debe alterarse alguno de los pasos anteriores para generar nuevos modelos. 1.2 Weka Figura 1. Minería de datos El proceso de minería de datos pasa por las siguientes fases [4]: Filtrado de datos: El formato de los datos contenidos en la fuente de datos (base de datos, Data Warehouse...) nunca es el idóneo, y la mayoría de las veces no es posible ni siquiera utilizar ningún algoritmo de minería sobre los datos "en bruto". Selección de Variables: Aún después de haber sido preprocesados, en la mayoría de los casos se tiene una cantidad ingente de datos. La selección de características reduce el tamaño de los datos eligiendo las variables más influyentes en el problema, sin apenas Weka [21] es un programa escrito en Java y desarrollado por la Universidad de Waikato que contiene diversos estándares para las tareas de minería de datos: preprocesado de datos, clustering, clasificación, regresión, visualización y selección de características. Entre los cuales los que utilizaremos principalmente para el estudio de nuestros datos son preprocesado de datos y clasificación. Weka puede utilizarse tanto desde la línea de comandos como desde la interfaz de usuario (explorador) que proporciona. Los clasificadores que esta herramienta tiene implementados están basados en redes bayesianas, análisis de regresión, redes neuronales, árboles de decisión, los de tipo perezoso, reglas de producción, y meta-clasificadores. El funcionamiento de un clasificador depende del número de ejemplos de entrenamiento de que se disponga. Idealmente, interesa disponer de un gran número de ejemplos para poder extraer un modelo fiable, que justifique tales ejemplos y que se comporte adecuadamente ante casos nuevos. En la práctica, el número de ejemplos de entrenamiento del que se dispone no es ilimitado; y por tanto es importante que el clasificador elegido sea capaz de extraer la máxima información posible de un pequeño conjunto de datos. No todos los clasificadores se comportan igual cuando el número de ejemplos de entrenamiento es reducido; el objetivo de esta práctica será determinar cuáles son los clasificadores más adecuados en estas circunstancias. 1.3 Spam 2.1.1 Frecuencia de palabra Se define spam como los mensajes no solicitados, habitualmente de tipo publicitario, enviados en forma masiva. El correo electrónico es, con diferencia, el medio más común de spamming en Internet [20]. Involucra enviar mensajes idénticos o casi idénticos a un gran número de direcciones (lo cual hace que sea insuficiente el uso filtros de direcciones para eliminar dichos correos no deseados). A diferencia de los correos electrónicos comerciales legítimos, el spam generalmente es enviado sin el permiso explícito de los receptores, y frecuentemente contiene varios trucos para sortear los filtros de spam. De ahí surge la necesidad de clasificación de los correos en función de su contenido y no únicamente de la dirección de correo electrónico. Algunas de las características [17] más comunes que presentan este tipo de mensajes de correo electrónico son: La dirección que aparece como remitente del mensaje no resulta conocida para el usuario, y es habitual que esté falseada. El mensaje no suele tener dirección de respuesta (Reply). Presentan un asunto llamativo. El contenido es publicitario: anuncios de sitios web, fórmulas para ganar dinero fácilmente, productos milagro, ofertas inmobiliarias, o simplemente listados de productos en venta en promoción. La mayor parte del spam está escrito en inglés y se origina en Estados Unidos o Asia, pero empieza a ser común el spam en español. La siguiente gráfica muestra las tasas de spam [12] desde comienzos del 2005 hasta mediados de 2007. Se puede observar que los mayores porcentajes se observan para el primer cuarto de 2005 donde llegó a alcanzar un 76.1% y a finales de 2006 donde llegó a 75.3%. Es decir que actualmente el porcentaje de correo no deseado se encuentra en torno a un 70%. De ahí la necesidad de un filtrado adecuado de los correos recibidos. Se utilizan 48 atributos del tipo “word_freq_WORD” reales [0, 100] que indican el porcentaje de palabras en el e-mail que coinciden con WORD, donde WORD es una cadena de caracteres alfanuméricos terminados en caracteres no alfanuméricos o final de cadena. La frecuencia de aparición de una palabra se calcula de la siguiente manera: word _ freq _ WORD= N º apariciones de WORD N º palabras del e − mail Los datos de frecuencia corresponden a las siguientes cadenas de caracteres: make, address, all, 3d, our, over, remove, internet, order, mail, receive, will, people, report, addresses, free, business, email, you, credit, your, font, 000, money, hp, hpl, george, 650, lab, labs, telnet, 857, data, 415, 85, technology, 1999, parts, pm, direct, cs, meeting, original, project, re, edu, table y conference. 2.1.2 Frecuencia de carácter Se emplean 6 atributos de tipo char_freq_CHAR reales[0,100] que indican la frecuencia de aparición del carácter CHAR. Dicha frecuencia se calcula como: char _ freq _ CHAR = N º apariciones de CHAR N º caracteres del e − mail Los caracteres de cuya frecuencia se dispone son: “;”, “(“, “[“, “!”, “$” y “#”. 2.1.3 Longitud de secuencias de mayúsculas Atributo real [1,…] que indica la longitud media de secuencias ininterrumpidas de letras mayúsculas (capital_run_length_average). 2.1.4 Secuencia más larga de mayúsculas Atributo entero [1,…] que indica la longitud de la máxima secuencia de letras mayúsculas (capital_run_length_longest). 2.1.5 Total de secuencias de mayúsculas Atributo entero [1,…] que indica la suma de las longitudes se las secuencias ininterrumpidas de mayúsculas. 2.1.6 Clase spam Figura 2. Estadísticas sobre spam 2. PRESENTACIÓN DE LOS DATOS Para la realización de este estudio se utiliza un conjunto de datos correspondientes a una colección de correo spam y otra de e-mails personales [9]. Estos datos contienen información sobre la frecuencia de aparición de determinadas palabras o a la existencia de una serie caracteres en el texto. Atributo nominal {1,0} que indica si el correo electrónico se considera spam (1) o no (0). Este atributo se denomina clase ya que es la variable de salida, aquella según la cual intentamos clasificar los datos. 2.2 PREPROCESAMIENTO DE DATOS Consiste en la selección, enriquecimiento, reducción y transformación de los datos para la obtención de una información más clara. 2.1 ATRIBUTOS Esta tarea es necesaria debido a que los datos que serán procesados pueden ser impuros, pueden conducir a la extracción de patrones o reglas poco útiles ya que puede ocurrir que existan datos incompletos o con ruido. A continuación se analizan los atributos utilizados para la descripción de la información contenida en los correos. Además el preprocesado de datos puede generar un conjunto más pequeño de información que el original, mejorando así la eficiencia del proceso de Minería de Datos. El número total de instancias que serán procesadas es 4601. Para el caso de estudio se consideran irrelevantes aquellos atributos que aparecen en igual medida en los e-mails personales y los no deseados, ya que no serán útiles para determinar el tipo de correo. Así se llega a la conclusión de que palabras como ‘table’, ‘3d’ o ‘;’ no aportan información relevante. Figure 3. Atributos ‘table’ y ‘3d’ ; [ direct font conference report cs data technology 415 project original pm 857 people meeting telnet 650 make 85 ( 5.5423% 5.5857% 5.5857% 5.564% 5.564% 5.6292% 5.6292% 5.6944% 5.6509% 5.6509% 5.6075% 5.6075% 5.6509% 5.6509% 5.5857% 5.564% 5.564% 5.6944% 5.7596% 5.8683% 5.8683% El último (“(“) es eliminado ya que utilizando esta vez GainRatioAttributeEval como evaluador de atributo se aprecia que es el menos significativo. Según el método empleado anteriormente debía eliminarse “edu” pero al hacerlo se obtenía un error mayor (por encima del 6%). Figure 4. Atributo ‘;’ Se utiliza Weka para seleccionar los atributos menos significativos usando "select attributes" con InfoGainAttributeEval como evaludador de atributo (Attribute evaluator) y Ranker como método de búsqueda (Search method) se llega a que los atributos que se pueden eliminar son los siguientes: ‘table’, ‘parts’, ‘3d’, ‘;’, ‘[‘,’direct’,’font’, ‘conference’, ‘report’, ‘cs’, ‘data’, ‘technology’, ‘415’, ‘project’, ‘original’, ‘pm’, ‘857’, ‘people’, ‘meeting’, ‘telnet’, ‘650’, ‘make’, ‘85’, ‘(’. Para comprobar que es correcto eliminar los atributos anteriormente mencionados se utiliza el algoritmo para el cual se obtiene un porcentaje de error bajo: meta/bagging. Este algoritmo fue uno de los primeros en ser probado y proporciona una buena probabilidad de error en la clasificación, sin ser excesivamente lento ni costoso, por lo que lo se utilizó como referencia para ver qué atributos debían ser eliminados. La tabla siguiente se ha construido eliminando un atributo y viendo su error, tras lo cual se elimina el siguiente (la eliminación de atributos indicada es acumulativa). Los errores obtenidos al eliminar los atributos anteriormente mencionados son: Tabla 1. Errores para los atributos eliminados Error con Atributo bagging table 5.5205% parts 5.5205% 3d 5.5205% Tras esta parte del preprocesado de los datos, el sistema que se emplea para ver qué atributos pueden no tener una significancia suficiente como para ser utilizados, y tener una clara ganancia de información, daba como atributo menos significante uno que al eliminarlo del conjunto de atributos producía un aumento del error que ya considerábamos excesivo (por encima del 6% o muy cercano a él) ya que el principal objetivo es mantener ese error acotado en todo momento, se dejó de utilizar este método. Sin embargo experimentalmente se observa que eliminando ciertos atributos que la herramienta consideraba significativos, no se tiene un aumento del error de clasificación de los correos electrónicos, es más, ese error disminuía, por lo tanto se procedió a eliminar datos del conjunto disponible manualmente y observando el resultado para actuar seguidamente en consecuencia. Tras este proceso, se obtiene que los atributos que podían ser eliminados del conjunto sin una variación del porcentaje de error son los que se muestran en la tabla siguiente: Tabla 2. Errores para los atributos eliminados (2) Atribut o Error con bagging order 5.8683% receive 5.7596% # 5.7161% email 5.6727% over 5.6292% credit 5.6075% De esta forma se consigue eliminar del conjunto de atributos 6 más, reduciendo el error final de la tabla anterior. Finalmente se consigue eliminar un total de 30 atributos, quedando 28, con lo que se simplifican bastante los modelos construidos por la aplicación y por lo tanto el procesamiento de los datos. Todo ello teniendo únicamente un 0.0087% de incremento en el error de clasificación. 3. ALGORITMOS UTILIZADOS Para la clasificación de los datos es importante tener en cuenta que no es suficiente con minimizar el porcentaje de errores cometidos sino en especial minimizar el número de correos personales clasificados como spam, ya que no es permisible rechazar correos personales por ser considerados no deseados. Figura 6. Capa oculta tipo a Ante las numerosas posibilidades que proporciona Weka para el análisis de datos se obtienen los mejores resultados para los siguientes algoritmos. 3.1 Perceptrón multicapa (Functions) Se emplean varios perceptrones multicapa para poder clasificar los datos empleados. Los perceptrones multicapa [5] son redes compuestas por multitud de unidades llamada neuronas e interconectadas entre sí. Las neuronas no son más que elementos que proporcionan una salida en función de sus entradas, a las que le aplican una función predeterminada para la obtención de dicha salida. Figura 7. Capa oculta tipo t Y se pueden combinar estas capas para formar un perceptrón multicapa con dos capas como los que usaremos, por ejemplo, uno con capas internas “a, t”, en orden de aparición, sería el siguiente: Figura 5. Neurona Figura 8. Perceptrón multicapa con capas ocultas “a, t” Las funciones que aplica una neurona a sus entradas para obtener la salida suele ser sencilla y simple, pero una red neuronal, debido a la asociación de distintas de estas neuronas, puede adoptar el comportamiento de una función extremadamente compleja, haciéndose más compleja conforme añadimos capas de neuronas o neuronas a dichas capas. Las capas de las redes neuronales usadas en esta aplicación son de dos tipos “a” y “t” (tipo “0” es cuando no tiene capa oculta), los cuales los presentamos a continuación: El primer perceptrón usado es uno con dos capas ocultas las cuales son primero una tipo “t” y luego le sigue una tipo “a”, el resto de los parámetros se mantendrán intactos iguales a los predefinidos por Weka. Los resultados obtenidos son: Instancias correctamente clasificadas: 4211 (91.5236 %) Instancias clasificadas incorrectamente: 390 (8.4764 %) Error absoluto medio: 0.1265 Raíz del error cuadrático medio: 0.262 Error absoluto relativo: 26.4881 % Raíz del error cuadrático relativo: 53.6129 % Tabla 3. Clasificación de datos para Perceptrón multicapa 1 Valor real Clasificado como a=0 Clasificado como b=1 a=0 2609 179 b=1 211 1602 Admite atributos numéricos y simbólicos, así como pesos por cada instancia. Permite que la clase sea simbólica o numérica. En el caso de que se trate de una clase numérica se empleará la siguiente ecuación para predecir el valor de un ejemplo de test: Empleando otro perceptrón multicapa, pero esta vez con capas ocultas “a” y “t”, siendo la capa “a” esta vez la que recibe las entradas de la red, se tienen los siguientes resultados: Donde v(i) es el valor (numérico) de la clase para el ejemplo i, n el número de ejemplos de entrenamiento, y P*(i|j) la probabilidad de transformación del ejemplo j en el ejemplo i. Instancias correctamente clasificadas: 4203 (91.3497 %) Instancias clasificadas incorrectamente: 398 (8.6503 %) Proporciona cuatro modos de actuación frente a pérdidas en los atributos en ejemplos de entrenamiento. Para el cálculo de los parámetros x0 y s permite basarse en el parámetro b o en el cálculo de la entropía. Error absoluto medio: 0.1221 Raíz del error cuadrático medio: 0.2648 Error absoluto relativo: 25.569 % Utilizando este algoritmo con normalización sobre los atributos: Raíz del error cuadrático relativo: 54.2003 % Instancias correctamente clasificadas: 4225 (91.8279 %) Tabla 4. Clasificación de datos para Perceptrón multicapa 2 Instancias clasificadas incorrectamente: 376 (8.1721 %) Error absoluto medio: 0.0923 Valor real Clasificado como a=0 Clasificado como b=1 a=0 2577 211 Error absoluto relativo: 19.3203 % b=1 187 1626 Raíz del error cuadrático relativo: 52.4342 % Con este otro perceptrón multicapa se obtiene un error algo mayor que con el anterior (su complejidad también es menor que el anterior, porque al ser la primera capa una tipo “a” el número de neuronas de la primera capa es menor y teniendo en cuenta todos los atributos considerados, el número de conexiones entre éstos y las neuronas de la primera capa desciende de gran manera). Lo que es peor, la probabilidad de falsa alarma crece bastante, aunque la probabilidad de no-detección disminuye casi de la misma forma, en esta aplicación tiene especial importancia un acotamiento de la probabilidad de falsa alarma, para no clasificar demasiado correo personal como spam. Además, el tiempo usado en construir el modelo y probarlo ha sido mucho mayor con el uso de perceptrones que con los clasificadores anteriores, y siendo mayor en el perceptrón multicapa de tipo “t, a” que en el de tipo “a, t”. Probablemente aumentando el número de capas de neuronas usadas en la red neuronal se conseguiría aumentar su precisión, pero aumentaría mucho más el tiempo de generación del modelo (el perceptrón más rápidamente creado tardó aproximadamente media hora en ser desarrollado). 3.2 Kstar (Lazy) Este algoritmo determina cuáles son las instancias más parecidas, puede utilizar la entropía, o contenido de información de las instancias, como medida de distancia entre ellas [16]. Son destacables las siguientes características [13]: Raíz del error cuadrático medio: 0.2562 Tabla 5. Clasificación de datos para Kstar Valor real Clasificado como a=0 Clasificado como b=1 a=0 2694 94 b=1 282 1531 Se observa que con este algoritmo se consigue una mejora muy significativa de la probabilidad de falsa alarma con respecto a los anteriores utilizados. Aún así la probabilidad de no-detección crece demasiado, casi en la misma cantidad que la de falsa alarma baja, aunque algo menos, por lo que se obtiene una pequeña reducción de la probabilidad total de error. El comportamiento de este clasificador en cuanto a los correos personales clasificados como spam es el que se realiza la búsqueda, sin embargo el incremento obtenido en los correos no deseados clasificados como deseados hace que sea necesario buscar algún otro clasificador que aporte un mejor comportamiento global. 3.3 BayesNet (Meta) BayesNet es una clase básica de los clasificadores de redes bayesianas [2]. Proporciona estructuras de datos y herramientas habituales de los algoritmos de aprendizaje de las redes bayesianas, tales como K2 y TAN. TAN [11] es una extensión en la que se permiten dependencias entre las variables predictoras, sin embargo la estructura de estas debe ser siempre un árbol. La poda está basada en la aplicación de un test de hipótesis que trata de responder a la pregunta de si merece la pena expandir o no una determinada rama [10]. Una red bayesiana [19] es un modelo probabilístico multivariado que relaciona un conjunto de variables aleatorias mediante un grafo dirigido que indica explícitamente influencia causal. Gracias a su motor de actualización de probabilidades, el Teorema de Bayes, las redes bayesianas son una herramienta extremadamente útil en la estimación de probabilidades ante nuevas evidencias. Este algoritmo permite [6]: Construir árboles de decisión cuando algunos de los ejemplos presentan valores desconocidos para algunos de los atributos. Trabajar con atributos que presenten valores continuos. La poda de los árboles de decisión. Se emplea para facilitar la comprensión de los mismos, ya que como estos se generan a partir de ejemplos que pueden ser muy distintos entre sí, el árbol resultante puede llegar a ser bastante complejo, con trayectorias muy largas y desiguales. Consiste en la sustitución de una parte del árbol (sub-árbol) por una hoja. La poda tendrá lugar si el valor esperado de error en el sub-árbol es mayor que con la hoja que lo sustituya. La información obtenida para BayesNet utilizando como estimador SimpleEstimator y como algoritmo de búsqueda TAN es: Instancias correctamente clasificadas: 4270 (92.8059 %) Instancias clasificadas incorrectamente: 331 (7.1941 %) Para J48 con poda [1] se obtiene la siguiente información: Error absoluto medio: 0.0841 Instancias correctamente clasificadas: 4273 (92.8711 %) Raíz del error cuadrático medio: 0.2429 Instancias clasificadas incorrectamente: 328 (7.1289 %) Error absoluto medio: 0.0887 Error absoluto relativo: 17.6065 % Raíz del error cuadrático medio: 0.2547 Raíz del error cuadrático relativo: 49.7038 % Error absoluto relativo: 18.5688 % Tabla 6. Clasificación de datos para BayesNet Valor real Clasificado como a=0 Raíz del error cuadrático relativo: 52.1254 % Clasificado como b=1 a=0 2666 122 b=1 209 1604 Con las redes bayesianas se puede conseguir que, aumentando en poca medida la probabilidad de falsa alarma con respecto a kstar, se reduzca bastante la de no-detección, obteniendo así una menor probabilidad de error total y un comportamiento más cercano al deseado. 3.4 J48 (Trees) Se trata de un algoritmo basado en clasificación por árbol de decisión. Permite podar antes de llegar a las hojas de cada subárbol con lo que se puede evitar el overfitting de atributos nominales con valores únicos [7]. La importancia de los árboles de decisión se debe a su capacidad de construir modelos interpretables, siendo este un factor decisivo para su aplicación. La clasificación en árboles de decisión considera clases disjuntas, de forma que el árbol conducirá a una y solo una hoja, asignando una única clase a la predicción [3]. Este algoritmo es una mejora del algoritmo ID3. El algoritmo J48 se basa en la utilización del criterio ratio de ganancia (gain ratio). De esta manera se consigue evitar que las variables con mayor número de posibles valores salgan beneficiadas en la selección. Además el algoritmo incorpora una poda del árbol de clasificación una vez que éste ha sido inducido. Tabla 7. Clasificación de datos para J48 Valor real Clasificado como a=0 Clasificado como b=1 a=0 2632 156 b=1 172 1641 Con los árboles J48 se reduce levemente el error total cometido con respecto al anterior clasificador, sin embargo la cantidad de correos personales clasificados como spam asciende (la probabilidad de error total disminuye porque lo hace también la cantidad de correos no deseados clasificados como personales). Lo que no es una mejora con respecto al anterior clasificador presentado. 3.5 Bagging (Meta) Bagging es un multiclasificador, es decir induce n clasificadores en lugar de uno sólo. Con este algoritmo se aprenden varios clasificadores y la salida es una composición del resultado que produce cada uno de ellos [11]. Los clasificadores pueden estar basados en distintas técnicas, por ejemplo, árboles, reglas, instancias... En este caso no se modifica el clasificador que usa internamente por defecto, REPTree. Las fases de este algoritmo son [5]: Fase 1: Generación de modelos 1. Sea n el número de ejemplos en la BD y m el número de los modelos a utilizar 2. Para i=1,…,m hacer • Muestrear con ejemplos de la BD • Aprender un modelo con conjunto de entrenamiento • Almacenarlo en modelos[i] reemplazo n Instancias correctamente clasificadas: 4361 (94.7837 %) ese Para i=1,…,m hacer • Predecir modelos[i] 2. Instancias clasificadas incorrectamente: 240 (5.2163 %) Error absoluto medio: 0.093 Raíz del error cuadrático medio: 0.2039 Fase 2: Clasificación 1. La información obtenida es: Error absoluto relativo: 19.4711 % la clase utilizando Devolver la clase predicha con mayor frecuencia Raíz del error cuadrático relativo: 41.7336 % Tabla 9. Clasificación de datos para Random Forest Valor real Clasificado como a=0 Clasificado como b=1 Instancias correctamente clasificadas: 4341 (94.3491 %) a=0 2692 96 Instancias clasificadas incorrectamente: 260 (5.6509 %) b=1 144 1669 El resultado que se obtiene configurándolo para que realice 15 iteraciones es: Error absoluto medio: 0.1052 Raíz del error cuadrático medio: 0.2132 Se disminuye aún más el porcentaje de correos personales clasificados como spam, además presenta también una mejora en la probabilidad de no-detección. Error absoluto relativo: 22.0301 % Raíz del error cuadrático relativo: 43.6388 % Tabla 8. Clasificación de datos para Bagging Valor real Clasificado como a=0 Clasificado como b=1 a=0 2684 104 b=1 156 1657 Se puede ver que para este algoritmo no sólo se reduce el porcentaje de instancias mal clasificadas sino que además disminuye el número de correos personales clasificados como spam. La diferencia que existe entre usar 10 iteraciones o 15 es que el número de e-mails personales clasificados como spam se reduce en 2 pero el numero de spam clasificados como correo personal asciende en 4, por lo que el error total es ligeramente superior pero se consigue reducir la probabilidad de falsa alarma, lo cual es más provechoso que esa pequeña reducción del error total. Se utilizan 15 árboles en vez de los 10 por defecto debido a que teniendo más árboles se consigue reducir el error total, por lo tanto disminuye tanto la probabilidad de falsa alarma como la de no-detección. Además usando 10 árboles puede darse el caso de tener tantos votos de que el correo es spam como de que no es spam (puede darse el caso de que cinco árboles opinen que si y otros cinco que no), de esta forma también se evita que aparezca este problema de indecisión. 3.7 Random Committee (Meta) Crear un comité de clasificadores aleatorios [14]. En este caso el clasificador usado por defecto es el RandomTree. Los resultados obtenidos para 15 iteraciones son: Instancias correctamente clasificadas: 4365 (94.8707 %) Instancias clasificadas incorrectamente: 236 (5.1293 %) Error absoluto medio: 0.101 Raíz del error cuadrático medio: 0.2092 3.6 Random Forest (Trees) Error absoluto relativo: 21.1432 % Este algoritmo construye muchos árboles de decisión. Cada árbol se construye escogiendo, entre los atributos que describen a las instancias, un pequeño subconjunto aleatorio. Para clasificar un nuevo objeto, se le da el vector que lo describe a cada árbol, los cuales hacen su clasificación independientemente. Cada clasificación es un voto. El bosque selecciona la clasificación que más votos obtenga [15]. Raíz del error cuadrático relativo: 42.8203 % Las ventajas que presenta este algoritmo son [8]: Maneja gran cantidad de entradas y estima su importancia Estima datos ausentes y mantiene nivel de precisión Se utilizarán para el análisis 15 árboles. Tabla 10. Clasificación de datos para Random Committee Valor real Clasificado como a=0 Clasificado como b=1 a=0 2702 86 b=1 150 1663 Se obtiene el menor error hasta ahora. La probabilidad de falsa alarma es la menor de todas las pruebas hasta ahora, aunque la probabilidad de no-detección es algo superior al ejemplo anterior, el comportamiento general es mejor. 4. CONCLUSIONES Los filtros usados hasta ahora para eliminar el correo no deseado son básicamente filtros de correo que basan sus decisiones en una lista negra de direcciones remitentes, en las que el usuario va añadiendo direcciones de correo indeseadas a medida que recibe spam de ellas. Sin embargo este método puede ser muy inefectivo, ya que continuamente los spammers pueden obtener nuevas cuentas de correo desde las que seguir enviando sus mensajes y los usuarios están obligados a seguir aumentando continuamente el tamaño de dichas listas, hasta un punto de poderse hacer inmanejables. Debido a ello se comenzó a utilizar posteriormente un segundo tipo de filtro, el cual basa sus decisiones no en direcciones particulares sino en dominios completos de correo, pudiendo así englobar varios spammers con cuentas diferentes pero bajo un mismo dominio en una única regla. Pero esto puede producir que correos deseados que puedan llegar de ese mismo dominio sean clasificados como spam. Por lo tanto, es interesante poder disponer de sistemas dinámicos de filtrado anti-spam, esto puede conseguirse con algoritmos que basen sus decisiones de bloqueo de correos electrónicos no en las direcciones de los remitentes, sino en características internas del propio correo, como su estructura, palabras usadas más frecuentemente, ciertos patrones repetitivos en todos ellos, y que éstos algoritmos puedan aprender nuevas reglas según cometan errores clasificando e-mails, y les sea comunicado dicho hecho por el propio usuario. Esto es posible por la similitud entre los mensajes, ya que intentan atraer la atención del receptor del mismo, suele haber ciertos patrones que se repiten, como signos de admiración, grandes textos en mayúsculas con formatos llamativos, y como intentan siempre vender algún artículo, pueden aparecer frecuentemente las palabras “free”, “offer” y símbolos monetarios (como hemos podido comprobar en nuestra aplicación que están entre las características significativas). Se ha podido comprobar que muchos de los datos disponibles no eran de utilidad para clasificar los correos, es más, algunos incluso eran perjudiciales y confundían a los algoritmos, por lo que salta a la vista la importancia de una buena selección de los atributos a examinar, no pudiéndose elegir a la ligera si queremos construir un sistema eficiente y robusto. Como se ha podido ver hasta ahora no sólo es importante ser capaz de detectar los correos no deseados en función de la frecuencia de aparición de determinadas palabras, sino que no se clasifiquen correos personales como correos erróneos ya que se estarían filtrando correos deseados. Durante el preprocesado de los datos ha sido posible eliminar una gran cantidad de atributos sin empeorar mucho las prestaciones de los clasificadores, sin embargo es posible que existan otras características no exploradas en los e-mails bajo test que podrían haber servido para reducir aún más los errores, el descubrimiento y selección adecuada de los atributos a usar es de suma importancia. Los clasificadores estudiados son aquellos de todos los disponibles en la aplicación Weka que proporcionan un menor error de clasificación. Es importante tener en cuenta que no por tratarse de clasificadores más complejos se obtendrán mejores resultados. En el caso de las redes neuronales, se observa que pueden llegar a ser excesivamente complicadas y costosas de entrenar y son sin embargo uno de los métodos que peores resultados ofrecen. En una aplicación para un cliente de correo sería impensable emplear una hora en entrenar un clasificador, utilizando tal cantidad de recursos del sistema. No obstante otros sistemas mas sencillos y dinámicos como los árboles, que además permiten muchas más modificaciones en Weka incluyendo nuevas reglas y ajustes, proporcionan mejores resultados que los perceptrones multicapa. Además los árboles permiten mejorar aún más sus prestaciones combinando varios de ellos y tomando decisiones de conjunto sobre las decisiones individuales de cada árbol (éstos son los últimos casos del bagging, random forest y el random committee). A pesar de estas ventajas pueden aparecer también aspectos negativos como el llegar a árboles de tamaño inmanejable. En la siguiente tabla se muestran las principales características de los algoritmos utilizados: Tabla 11. Comparación de Clasificadores Clasificador Complejidad Error Aproximado Falsa Alarma Perceptrón Alta 8.5% 4 – 4.5% Kstar Media 8% 2% BayesNet Alta 7% 2.5% J48 Baja 7% 3.4% Bagging Media 5.5% 2.3% Random Forest Media 5.2% 2.1% Random Committee Media 5.1% 1.8% Es importante considerar que para el último algoritmo probado se obtiene una buena probabilidad de error, ligeramente superior al 5%, donde sólo el 1.8% son correos personales son clasificados como spam, pudiendo mejorarse aumentando el número de árboles usados o el número de iteraciones empleadas para la construcción del modelo. Por último destacar que puede ser una buena idea combinar los filtros convencionales con este otro de tipo adaptativo, mejorando así las prestaciones de ambos, es decir, emplear junto a uno de estos algoritmos unas listas de correo negras y blancas configuradas por los usuarios para así poder bajar más aún la probabilidad de falsa alarma o de no-detección obtenidas. 5. REFERENCIAS [1] Javier Béjar (LSI - FIB - UPC) http://www.lsi.upc.es/~bejar/apren/lab/ArbolesDecision.pdf [2] Remco Bouckaert http://classes.engr.oregonstate.edu/eecs/winter2003/cs534/w eka/weka-3-3-4/doc/weka.classifiers.bayes.BayesNet.html [3] José Ramón Cano, Francisco Herrera y Manuel Lozano http://www.lsi.us.es/redmidas/Capitulos/LMD25.pdf [4] DAEDALUS - Data, Decisions and Language, S. A. http://www.daedalus.es/AreasMDFases-E.php [5] Data Mining, Apuntes de la asignatura. 2º Ingeniería Informática. Universidad de Jaén http://wwwdi.ujaen.es/asignaturas/dm/tema8.pdf [6] Luis Javier Duque Cuadrado http://www.it.uc3m.es/jvillena/irc/practicas/0304/13.mem.pdf [7] Miguel Ángel Fuente Rodríguez. Pablo Galarza Heredero http://www.it.uc3m.es/jvillena/irc/practicas/0506/13mem.pdf [8] Fernando García. Guillermo Ramos http://www.it.uc3m.es/jvillena/irc/practicas/05-06/1pres.pdf [9] Mark Hopkins, Erik Reeber, George Forman, Jaap Suermondt . Hewlett-Packard Labs, 1501 Page Mill Rd., Palo Alto, CA. Donor: George Forman (gforman at nospam hpl.hp.com) June-July 1999. http://archive.ics.uci.edu/ml/datasets/Spambase [10] Pedro Larrañaga, Iñaki Inza, Abdelmalik Moujahid Departamento de Ciencias de la Computación e Inteligencia Artificial Universidad del País Vasco-Euskal Herriko Unibertsitatea http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/t10arbo les.pdf [11] Juan Luis Mateo http://www.dsi.uclm.es/asignaturas/42633/practicas/practica 4.pdf [12] Message labs http://www.pablogeo.com/estadisticas-del-spam [13] José Manuel Molina López, Jesús García Herrero http://scalab.uc3m.es/~docweb/ad/transparencias/apuntesAna lisisDatos.pdf [14] Package weka.classifiers.meta http://weka.sourceforge.net/doc/weka/classifiers/meta/packa ge-summary.html [15] Dánel Sánchez Tarragó http://66.102.9.104/search?q=cache:KVpnLUCbdGkJ:www.i nformatica2007.sld.cu/Members/danel/pronostico-desupervivencia-de-infarto-cerebral-aterotrombotico-usandoaprendizaje-atomatizado/2006-1115.5808751092/download+RandomForest&hl=es&ct=clnk& cd=1&gl=es&lr=lang_es [16] Dánel Sánchez Tarragó. Departamento de Informática del Instituto Superior de Ciencias Médicas de Villa Clara. www.informatica2007.sld.cu/.../2006-1115.5808751092/download [17] Seguridad de la información http://www.segu-info.com.ar/malware/spam.htm [18] Wikipedia Minería de Datos http://es.wikipedia.org/wiki/Miner%C3%ADa_de_datos [19] Wikipedia Red Bayesiana http://es.wikipedia.org/wiki/Red_bayesiana [20] Wikipedia Spam http://es.wikipedia.org/wiki/Spam#Spam_por_correo_electr. C3.B3nico. [21] Wikipedia Weka http://en.wikipedia.org/wiki/Weka_%28machine_learning%2 9