Proceedings Template - WORD - Departamento de Ingeniería

Commentaires

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