Escuela Técnica Superior de Ingeniería Informática Máster Oficial en Ingeniería y Tecnología del Software TRABAJO FIN DE MÁSTER Una metaheurística para la extracción de reglas de asociación. Aplicación a terremotos. Autor: D. Álvaro Pita Martín Tutores: Dr. José C. Riquelme Santos Dr. Francisco Martínez Álvarez Convocatoria de Junio Curso 2011/2012 2 Título: Una metaheurística para la extracción de reglas de asociación. Aplicación a terremotos. Autor: Álvaro Pita Martín Tutor Cotutor Profesores de la asignatura Tribunal: Nombre:……………………………………………….. Firma: Nombre:……………………………………………….. Firma: Nombre:……………………………………………….. Firma: 3 4 Agradecimientos. Debo agradecer de manera especial a mi tutor, D. José C. Riquelme, por haber confiado en mi persona, y haber aceptado mi petición para realizar este proyecto. Su labor como docente, sus consejos y su capacidad para guiarme a lo largo de esta investigación, han sido un aporte excepcional, tanto en el desarrollo de esta memoria, como en mi propio desarrollo personal y profesional. A Francisco Martínez Álvarez, por su permanente disponibilidad, por el esfuerzo invertido, por animarme en el transcurso de este trabajo en los malos momentos y por lo más importante: brindarme la oportunidad de realizar este proyecto. Sin ti, este trabajo no habría sido posible, gracias amigo mío. A Alicia Troncoso Lora, por su disposición y ayuda, por su absoluta profesionalidad y por la dedicación empleada en este trabajo. Gracias por tus desinteresados consejos. Sin tus aportes, este proyecto tampoco habría sido posible. Por ultimo, mis más sinceros agradecimientos a mis más allegados, mi familia, por su incondicional apoyo, por estar siempre, en los buenos y en los malos momentos, por su cariño, y por demostrarme que siempre puedo contar con ellos, y a María, que ya forma parte de mi familia, por aguantarme a diario, por su paciencia, por su comprensión y por el amor que me brinda. A todos vosotros, gracias. 5 6 Resumen. Este trabajo final de Máster se incluye dentro de la disciplina de la Extracción Automática de Conocimiento (KDD, Knowledge Discovery in Databases) y más concretamente se centra en la etapa de Minería de Datos (MD). La MD es una de las áreas que más éxito y aplicación ha tenido a la hora de analizar información con el objetivo de extraer nuevo conocimiento. El objetivo de este trabajo es encontrar patrones y relaciones dentro de los datos permitiendo la creación de modelos en los que la representación del conocimiento esté basada en reglas de asociación. Concretamente, la extracción de reglas de asociación consiste en descubrir relaciones interesantes, y previamente inesperadas, entre los diferentes atributos de un conjunto de datos. Las reglas obtenidas pueden servir de ayuda para poder tomar posteriores decisiones en cualquier área en la que se esté trabajando. Además por la sencillez que presentan junto con el importante valor del conocimiento que se consigue extraer de los datos, hacen que el estudio de esta técnica sea continuo objeto de investigación. No existen muchos algoritmos en la literatura para encontrar este tipo de reglas, pero la mayoría de los trabajos se basan en modificaciones del algoritmo A Priori y en técnicas basadas en computación evolutiva y además la mayoría han sido aplicados a bases de datos con atributos discretos, mientras que en el mundo real existen numerosas bases de datos donde la información es numérica como por ejemplo las series temporales de eventos relacionados con desastres naturales como los terremotos. 7 8 Tabla de contenido Agradecimientos. .......................................................................................................................... 5 Resumen........................................................................................................................................ 7 Lista de figuras. ........................................................................................................................... 11 Lista de tablas. ............................................................................................................................. 13 1 2 Introducción. ....................................................................................................................... 15 1.1 Objetivos. .................................................................................................................... 15 1.2 Estructura de la memoria. ........................................................................................... 15 Contexto de investigación. .................................................................................................. 17 2.1 Minería de datos. ........................................................................................................ 17 2.1.1 ¿Qué es la minería de datos? .............................................................................. 17 2.1.2 Relación con otras disciplinas ............................................................................. 19 2.1.3 Etapas del proceso KDD. ..................................................................................... 19 2.1.4 Tareas de la minería de datos. ............................................................................ 25 2.1.5 Aplicaciones......................................................................................................... 26 2.2 Reglas de asociación.................................................................................................... 27 2.2.1 Introducción. ....................................................................................................... 27 2.2.2 Medidas de calidad de las reglas de asociación. ................................................. 29 2.2.3 Reglas de asociación cuantitativas ...................................................................... 30 2.2.4 Algoritmo a priori. ............................................................................................... 32 2.2.5 Otros algoritmos de extracción de reglas de asociación. .................................... 33 2.2.6 Herramientas de uso de Reglas de Asociación.................................................... 33 3 Estado del arte. ................................................................................................................... 35 4 Metodología. ....................................................................................................................... 39 5 6 4.1 Descripción del algoritmo. .......................................................................................... 39 4.2 Formalización del algoritmo. ....................................................................................... 42 4.3 Obtención de reglas de asociación raras. ................................................................... 43 4.4 Obtención de reglas de asociación compensadas. ..................................................... 44 Resultados. .......................................................................................................................... 47 5.1 Descripción de la base de datos. ................................................................................. 47 5.2 Tablas de resultados.................................................................................................... 47 5.2.1 Estrategia 1. Reglas de asociación raras.............................................................. 48 5.2.2 Estrategia 2. Reglas de asociación compensadas................................................ 49 Conclusiones........................................................................................................................ 53 9 7 10 Bibliografía. ......................................................................................................................... 55 Lista de figuras. Figura 1. Etapas del proceso KDD. .............................................................................................. 20 Figura 3. Estrategia1.txt. Ejemplo de resultados obtenidos. ...................................................... 43 Figura 4. Estrategia2.txt. Ejemplo de resultados obtenidos. ...................................................... 44 11 12 Lista de tablas. Tabla 1. Base de datos de ejemplo.............................................................................................. 29 Tabla 2. Datos de ejemplo........................................................................................................... 31 Tabla 3. Conjunto de datos de ejemplo. ..................................................................................... 39 Tabla 4. Conjunto de datos ordenados de menor a mayor. ....................................................... 40 Tabla 5. Reglas obtenidas de forma aleatoria. Provisional. ........................................................ 41 Tabla 6. Reglas obtenidas de forma aleatoria. Definitiva. .......................................................... 41 Tabla 7. Reglas de asociación raras con consecuente ..................................... 48 Tabla 8. Reglas de asociación compensadas con consecuente ..................... 49 Tabla 9. Reglas de asociación compensadas con consecuente ..................... 50 Tabla 10. Reglas de asociación compensadas con consecuente ..................... 51 13 14 1 Introducción. Se presenta en este capítulo la motivación para realizar este trabajo de investigación. En concreto, este capítulo se dividirá en dos secciones. Una primera en la que se fijan los objetivos que se quieren cumplir y una segunda en la que se describe la estructura del resto de la memoria. 1.1 Objetivos. Este trabajo se centrará en los siguientes aspectos: Desarrollar una metaheurística para la extracción de reglas de asociación. Una de las principales características de esta técnica será su capacidad para trabajar con atributos continuos, a diferencia de la mayoría de algoritmos existentes en la literatura. Esta metaheurística de optimización estará basada en la función k-ésimo mayor y késimo menor para obtener reglas de asociación en conjunto de datos con atributos numéricos. La metaheurística consiste en calcular los parámetros k de tal forma que las medidas que midan que la calidad de las reglas sean óptimas. Análisis de cuáles son las medidas a partir de las cuales se obtienen las reglas con mayor calidad y que, por tanto, mejor modelan a los datos estudiados. Para validar la calidad de la metaheurística, se aplicará a una base datos de terremotos. En concreto, se pretende predecir el comportamiento de series temporales de terremotos con las reglas de asociación obtenidas mediante un proceso automático. 1.2 Estructura de la memoria. La presente memoria se divide en los siguientes apartados: En el capitulo 2, Contexto de investigación, se describe el ámbito en el que se desarrolla el trabajo. Se estudia en primer lugar el área de la minería de datos, centrada en el proceso completo de extracción de conocimiento a partir de bases de datos. El capitulo se centra en aportar una visión general sobre la minería de datos a modo de introducción, relacionándola con otras disciplinas y estudiando las diferentes etapas que se acontecen en proceso de extracción de conocimiento a partir de bases de datos. Por ultimo, se desarrolla un breve estudio sobre las tareas y aplicaciones de la minería de datos. En el capitulo 2 además, se estudian las reglas de asociación, de forma que se describe de manera más amplia la parte de la minería de datos que se desarrolla posteriormente en la metodología y que supone foco de estudio de esta memoria. En este capitulo se estudian además las medidas de calidad utilizadas en la metodología, que permiten medir la calidad de las reglas de asociación. Por ultimo, se realiza un breve estudio sobre algunos algoritmos de extracción de reglas de asociación, como pueden ser el algoritmo A Priori, Eclat o FP Growth El capitulo 3, Metodología, se centra en el algoritmo desarrollado para este trabajo. Se desarrolla una explicación detallada del funcionamiento de este algoritmo, detallando cada una de las estrategias seguidas en la generación de reglas de asociación. Por un 15 lado, se detalla el proceso de generación de reglas de asociación raras. En segundo lugar, se detalla el proceso de generación de reglas de asociación compensadas. Por ultimo, se describe la formulación matemática para dicho algoritmo. 16 En el capitulo 4, Resultados, se realizan una serie de experimentos con el fin de comprobar el algoritmo desarrollado. En este capitulo se describen los datos utilizados para la generación de los experimentos, así como los resultados obtenidos tanto en la generación de reglas de asociación raras como en la generación de reglas de asociación compensadas. En el capitulo 5, Conclusiones, se concluye la memoria del trabajo realizado, aportando unas pequeñas conclusiones sobre el trabajo llevado a cabo. Se presentan además algunas líneas de trabajos futuros. 2 Contexto de investigación. En este capítulo se proporciona el contexto en el que se ha desarrollado la investigación. Para ello, se hará una breve introducción a la minería de datos y al papel crucial que juega en el proceso conocido como Knowledge Discovery in Databases (KDD). A continuación, se presentarán las técnicas basadas en reglas de asociación, objetivo fundamental de este trabajo. En concreto, se formalizará el problema y se describirán las principales medidas que se utilizan para evaluar la calidad de dichas reglas. Se hará especial hincapié en aquellas técnicas que se centren en el manejo de atributos cuantitativos. 2.1 Minería de datos. En esta sección será estudiada el área de la Minería de datos centrada en el concepto de Minería de Datos dentro del proceso completo de extracción de conocimiento a partir de bases de datos. Obviamente, es imposible tratar y abarcar toda el área en profundidad puesto que es demasiado extensa, por lo que se dará una visión general como introducción acerca de las distintas fases, técnicas, etc. y posteriormente nos centraremos en las partes que están relacionadas con el trabajo. 2.1.1 ¿Qué es la minería de datos? En los últimos años, ha existido un gran crecimiento en nuestras capacidades de generar y colectar datos, debido básicamente al gran poder de procesamiento de las máquinas y a su bajo costo de almacenamiento. El aumento del volumen y variedad de información que se encuentra informatizada en bases de datos digitales ha crecido de manera espectacular en la última década, siendo gran parte de esta información histórica, es decir, en la mayoría de los casos transacciones o situaciones que se han producido. Esta información a parte tener función de “memoria de la organización”, es útil para predecir la información futura. Además las empresas suelen generar grandes cantidades de información sobre sus procesos productivos, desempeño operacional, mercados y clientes. Esto implica que la mayoría de los sistemas, produzcan una cantidad inmensa de datos, dentro delos cuales existe una gran cantidad de información oculta, de gran importancia estratégica, a la que no se puede acceder por las técnicas clásicas de recuperación de la información, ya que en muchas situaciones el método tradicional de convertir los datos en conocimiento consiste en un análisis e interpretación realizada de forma manual. Por tanto, se llegó a un punto en el que las dimensiones de las bases de datos grandes y sus velocidades de crecimiento, hacían muy difícil para un humano el análisis y la extracción de alguna información importante, desbordando la capacidad de los mismos, y como consecuencia surgen diferentes técnicas de manejo automático de la información: OLPT (OnLine Transactional Processing),OLAP (On-Line Analytical Processing)y herramientas estadísticas. En principio, se pensó que estas técnicas serían la solución ante el crecimiento dela información, sin embargo, presentan una serie de limitaciones e inconvenientes, ya que con SQL por ejemplo, sólo podemos realizar un primer análisis aproximadamente del 80%de la 17 información, quedando un 20% restante donde la mayoría de las veces se contiene la información más importante. Este 20% restante requiere utilizar técnicas más avanzadas. Esta serie de problemas y limitaciones de las aproximaciones clásicas, son la causa de la necesidad de una nueva generación de herramientas y técnicas para soportar la extracción de conocimiento útil desde la información disponible, y que se engloban bajo la denominación de minería de datos. Surgen una serie de herramientas y técnicas capaces de identificar tendencias y comportamientos, no sólo para extraer información, sino también para descubrir las relaciones en bases de datos que pueden identificar comportamientos que no son muy evidentes, combinando las técnicas tradicionales con numerosos recursos desarrollados en el área de la inteligencia artificial, para encontrar patrones y relaciones dentro de los datos permitiendo la creación de modelos, es decir, representaciones abstractas de la realidad. Pero en realidad el que se encarga de la preparación de los datos y la interpretación delos resultados obtenidos, los cuales dan un significado a estos patrones encontrados es lo que se conoce como “Descubrimiento de Conocimiento a partir de Bases de Datos” (KDD, del inglés Knowledge Discovery from Databases). Con la aparición de estas nuevas técnicas no se requiere que el usuario final sea un experto en aprendizaje automático y en estadística. Aunque desde un punto de vista académico el término minería de datos es una etapa dentro de un proceso mayor llamado extracción de conocimiento en bases de datos, KDD, estos términos se suelen usar indistintamente. El término KDD se define como un proceso no trivial de identificar patrones válidos, novedosos, potencialmente útiles y en última instancia comprensibles a partir de los datos. Mientras que la Minería de Datos es la etapa de descubrimiento en el proceso de KDD. Es el paso consistente en el uso de algoritmos concretos que generan una enumeración de patrones a partir de los datos pre-procesados. El resultado de la exploración no debe ser afectada por mayores volúmenes de datos o por ruido en los datos, por lo que los algoritmos de descubrimiento de información deben ser altamente robustos. El objetivo fundamental del KDD es encontrar conocimiento: Útil: El conocimiento debe servir de algo, es decir, debe conducir a acciones de las cuales se pueda obtener algún tipo de beneficio para el usuario. Valido: Los patrones deben seguir siendo precisos para datos nuevos, no solo para aquellos que han sido usados en su obtención. El conocimiento debe verificarse en todos los datos que se tienen. Comprensible: Debe posibilitar la interpretación, revisión, validación y uso en la toma de decisiones. Una información incomprensible no proporciona conocimiento. Nuevo: Debe aportar algo desconocido para el sistema y preferiblemente para el usuario. La minería de datos puede aplicarse a cualquier tipo de información, siendo las técnicas de minería diferentes para cada una de ellas. La información se puede distinguir entre datos estructurados, por ejemplo, provenientes de bases de datos relacionales, otros tipos de datos 18 estructurados en bases de datos (espaciales, temporales, textuales y multimedia) y datos no estructurados provenientes de la Web o de otros tipos de repositorios de documentos. El conocimiento extraído por la minería de datos puede ser en forma de relaciones, patrones o reglas inferidos de los datos y previamente desconocidos, o bien en forma de una descripción más concisa, es decir, un resumen de los mismos. Estas relaciones o resúmenes constituyen el modelo de los datos analizados. Existen muchas formas diferentes de representar los modelos y cada una de ellas determina el tipo de técnica que puede usarse para inferirlos. Los modelos pueden ser de dos tipos: 1. Un modelo predictivo. Pretende estimar valores futuros o desconocidos de variables de interés, denominadas como variables objetivo o dependientes, usando otras variables o campos de la base de datos, referidas como variables independientes o predictivas. Un modelo predictivo sería aquel que permite estimar la demanda de un nuevo producto en función del gasto en publicidad. 2. Un modelo descriptivo. Sirve para explorar las propiedades de los datos examinados, no para predecir nuevos datos. En el caso de una agencia de viajes, se desea identificar grupos de personas con unos mismos gustos, con el objeto de organizar diferentes ofertas para cada grupo y poder así remitirles esta información; para ello analiza los viajes que han realizado sus clientes e infiere un modelo descriptivo que caracteriza estos grupos. 2.1.2 Relación con otras disciplinas KDD nace como interfaz y se nutre de diferentes disciplinas. Es un aspecto muy interesante de esta metodología, ya que involucra distintas áreas de investigación como la estadística, los sistemas de información y bases de datos, el aprendizaje automático, la inteligencia artificial, el reconocimiento de patrones, la visualización de datos, la computación paralela y distribuida, los sistemas de toma de decisiones, la recuperación de información, etc. Para extraer el conocimiento durante estos procesos se utilizan técnicas tales como redes neuronales, lógica difusa, algoritmos genéticos, razonamiento probabilístico, árboles de decisión, etc. 2.1.3 Etapas del proceso KDD. El proceso de KDD consiste en usar métodos de minería de datos (algoritmos)para extraer (identificar) lo que se considera como conocimiento de acuerdo a la especificación de ciertos parámetros usando una base de datos junto con pre-procesamientos y post-procesamientos. El proceso de KDD es un proceso iterativo e interactivo: Iterativo ya que la salida de alguna de las fases puede hacer volver a pasos anteriores y porque a menudo son necesarias varias iteraciones para extraer conocimiento de alta calidad. Interactivo porque el usuario, o más generalmente un experto en el dominio del problema, debe ayudar en la preparación de los datos, validación del conocimiento extraído, etc. 19 Los pasos que se deben seguir para la realización de un proyecto de minería de datos son siempre los mismos, independientemente de la técnica específica de extracción de conocimiento usada. En la siguiente imagen pueden verse las etapas básicas de la minería de datos. Figura 1. Etapas del proceso KDD. 1. Determinar las fuentes de información que pueden ser útiles y dónde conseguirlas. 2. Diseñar el esquema de un almacén de datos (Data Warehouse) que consiga unificar de manera operativa toda la información recogida. 3. Implantación del almacén de datos que permita la navegación y visualización previa de sus datos, para discernir qué aspectos pueden ser interesantes para su estudio. 4. Selección, limpieza y transformación de los datos que se van a analizar. La selección incluye tanto una criba o fusión horizontal (filas) como vertical (atributos). 5. Seleccionar y aplicar el método de minería de datos apropiado. 6. Interpretación, transformación y representación de los patrones extraídos. 7. Difusión y uso del nuevo conocimiento. 2.1.3.1 Integración y recopilación de datos. La familiarización con el dominio del problema y la obtención de conocimiento apriori disminuye el espacio de soluciones posibles y por tanto la eficiencia es mayor en el resto del proceso. Las primeras fases del KDD determinan que las fases sucesivas sean capaces de extraer conocimiento válido y útil a partir de la información original. Generalmente, la información que se quiere investigar sobre un cierto dominio dela organización se encuentra en bases de datos y otras fuentes muy diversas, tanto internas como externas y muchas de estas fuentes son las que se utilizan para el trabajo transaccional. 20 Aparte de información interna de la organización, los almacenes de datos pueden recoger información externa, como por ejemplo, demografías (censo), páginas amarillas, psicografías, gráficos Web, información de otras organizaciones; datos compartidos en una industria o área de negocio, organizaciones y colegios profesionales, catálogos, etc.; datos resumidos de áreas geográficas, distribución de la competencia, evolución de la economía, información de calendarios y climatológicas, programaciones televisivas-deportivas, catástrofes; bases de datos externas compradas a otras compañías. El análisis posterior será mucho más sencillo si la fuente es unificada, accesible(interna) y desconectada del trabajo transaccional. El data warehouse es conveniente para KDD aunque no imprescindible, ya que a veces se trabaja directamente con la base de datos o con las bases de datos en formatos heterogéneos. Hay que considerar una serie de cuestiones al realizar la integración de datos desde distintas fuentes. Por ejemplo para la integración del esquema se deben utilizar los metadatos que normalmente se almacenan en las bases de datos y en los data warehouse, para asegurar que entidades equivalentes se emparejan correctamente cuando se produce la fusión desde distintas fuentes. Otro aspecto importante es la redundancia, que se produce cuando un atributo se puede obtener a partir de otros atributos. Una forma de detectarla, es mediante análisis de correlaciones, cuyo objetivo es medir la fuerza con la que un atributo implica a otro en función de los datos disponibles. También es importante la detección y resolución de conflictos en los valores de los datos, ya que un atributo puede diferir según la fuente de procedencia, debido a diferencias en la representación, escala o forma de codificar. Cuidar el proceso de integración a partir de múltiples fuentes reducirá y evitará redundancias e inconsistencias en los datos resultantes, mejorando la exactitud y velocidad del proceso de Minería de Datos. 2.1.3.2 Preprocesamiento [1]. La calidad del conocimiento descubierto no depende sólo del algoritmo de minería de datos sino de la calidad de los datos minados. Es decir, aunque el algoritmo de minería de datos sea muy bueno, si los datos no son adecuados, el conocimiento extraído no será válido. Este paso es necesario ya que algunos datos coleccionados en la etapa anterior son irrelevantes o innecesarios para la tarea de minería que se desea realizar. Por tanto el objetivo general de esta fase será seleccionar el conjunto de datos adecuado para el resto del proceso de KDD. Las tareas de esta etapa se agrupan en: 1) Limpieza de datos (data cleaning). Las bases de datos reales en la actualidad suelen contener datos ruidosos, perdidos. Se deben eliminar el mayor número posible de datos erróneos o inconsistentes (limpieza) e irrelevantes (criba). Algunos de los algoritmos de Minería de Datos tienen métodos propios para tratar con datos incompletos o ruidosos. Pero en general estos métodos no son muy robustos, lo normal es realizar previamente la limpieza de los datos. Los objetivos de esta subetapa son rellenar valores perdidos, suavizar el ruido de los datos, identificar o eliminar outliers (datos anómalos) y resolver inconsistencias. 21 2) Transformación de los datos. El objetivo de la transformación de datos es poner los datos de la mejor forma posible para la aplicación de los algoritmos de Minería de Datos. Algunas de las operaciones típicas que se suelen realizar: a) Agregación, generalización de los datos: Se trata de obtener datos de más alto nivel a partir de los actuales, utilizando jerarquías de conceptos. b) Normalización: El objetivo de esta operación es pasar los valores de un atributo a un rango mejor. Es bastante útil para técnicas como AANN o métodos basados en distancias. Entre las técnicas de normalización cabe destacar la normalización minmáx., que realiza una transformación lineal, la normalización zero-mean, que normaliza en función de la media y la desviación estándar, y la normalización por escala decimal que consiste en normalizar moviendo el punto decimal de los valores del atributo. c) Construcción de atributos: Consiste en construir nuevos atributos aplicando alguna operación a los atributos originales tales como agrupación, separación, etc. Puede ser interesante cuando los atributos no tienen mucho poder predictivo por sí solos o cuando los patrones dependen de variaciones lineales de las variables globales. Se utiliza para mejorar la exactitud y la comprensibilidad de la estructura al trabajar con datos con muchas dimensiones. d) Discretización: Se basa en pasar atributos continuos (o discretos con muchos valores) a casos discretos manejables o a categóricos. Esta técnica es imprescindible para muchos algoritmos de Minería de Datos, puesto que muchos no pueden trabajar con valores continuos. Hay que tener especial cuidado ya que una mala discretización puede invalidar los datos. 3) Reducción de la dimensionalidad: En esta etapa el objetivo principal es obtener una representación reducida del conjunto de datos, de volumen mucho menor, pero sin perder en gran medida la integridad de los datos originales. La minería sobre el conjunto reducido resultante debe ser mucho más eficiente pero obteniendo conclusiones iguales o al menos aproximadas. La reducción de la dimensionalidad se puede llevar a cabo mediante un tipo basado en selección de instancias o selección de características. a) La selección de instancias consiste en obtener una representación más pequeña del conjunto de datos. Dentro de este tipo se pueden distinguir dos tipos de técnicas: i) Técnicas paramétricas: Consisten en estimar un modelo a partir de los datos, de forma que se almacenan sólo los parámetros y no los datos reales. Se pueden distinguir dos tipos de modelos, los cuales son la regresión lineal múltiple y los modelos log-lineales que aproximan distribuciones de probabilidad multidimensionales. ii) Técnicas no paramétricas: Sirven para reducir la cantidad de datos mediante el uso de algoritmos basados en clustering y muestreo. El clustering consiste en crear grupos de ejemplos similares seleccionando un representante de cada grupo el cual pasará a formar parte del nuevo conjunto de ejemplos. El objetivo del muestreo es seleccionar un conjunto del total de casos presentes en la base de datos original, pudiendo realizarse mediante varios métodos, como por ejemplo de forma estratificada, por grupos, etc. 22 b) La selección de características o variables consiste en encontrar un subconjunto de las variables del problema que optimice la probabilidad de clasificar correctamente. Es necesaria, ya que el hecho de tener más atributos no significa que se tenga más éxito en la clasificación, además el trabajar con menos variables reduce la complejidad del problema, disminuye el tiempo de ejecución y aumenta la capacidad de generalización. c) Un algoritmo de selección de características se compone de dos componentes principales como son la estrategia de búsqueda, para seleccionar subconjuntos candidatos y la función objetivo que evalúe la calidad de los mismos. Existen un gran número de algoritmos para llevar a cabo la selección de características basados en búsqueda, árboles de decisión, etc. d) Otras técnicas que se utilizan para reducir la dimensionalidad del conjunto de datos son la discretización, la compresión de datos, etc. 2.1.3.3 Minería de datos La fase de minería de datos es la más característica del KDD, y por esta razón, muchas veces se utiliza esta fase para nombrar todo el proceso. El objetivo de esta etapa es producir nuevo conocimiento que pueda utilizar el usuario, construyendo un modelo, basado en los datos recopilados, que sea una descripción de los patrones y relaciones entre los datos con los que se puedan hacer predicciones, entender mejor los datos o explicar situaciones pasadas. Se deben tomar una serie de decisiones antes de empezar el proceso. En primer lugar se tiene que determinar que tipo de conocimiento buscamos, ya que puede ser predictivo o descriptivo. Según el tipo, en segundo lugar hay que seleccionar la técnica más idónea para dicho tipo de conocimiento. Existen un gran número de técnicas entre las que se encuentran clasificación, regresión agrupamiento, asociaciones. También es necesario identificar de qué tipo de modelo se trata dentro de cada técnica. Por ejemplo, para clasificación, puede tratarse de un modelo basado en reglas, redes neuronales, árboles de decisión, etc. Por último hay que elegir el algoritmo de minería que resuelva la tarea y obtenga el tipo de modelo que se está buscando. Es en esta fase donde mejor vemos el carácter iterativo del proceso de KDD, ya que será necesario explorar modelos alternativos hasta encontrar aquel que resulte más útil para resolver nuestro problema. En la búsqueda del buen modelo, puede que tengamos que retroceder hasta fases anteriores y hacer cambios en los datos que estamos usando o incluso modificar la definición del problema. Además la elección de la tarea a realizar y del algoritmo a usar puede influir en la preparación de los datos. 2.1.3.4 Evaluación e interpretación La fase de Minería de Datos puede producir varias hipótesis de modelos por lo que es necesario establecer qué modelos son los más válidos. Medir la calidad de los patrones descubiertos por un algoritmo de Minería de Datos no es un problema trivial, ya que esta medida puede atañer a varios criterios, algunos de ellos bastante subjetivos. 23 Idealmente, los patrones descubiertos deben tener tres cualidades; deben ser precisos, comprensibles (es decir, inteligibles) e interesantes (útiles y novedosos). Según las aplicaciones puede interesar mejorar algún criterio y sacrificar ligeramente otro. Se utilizan técnicas de evaluación que consisten en dividir el conjunto de datos en dos conjuntos, de entrenamiento, que sirve para extraer el conocimiento y el de test, que prueba la validez del conocimiento extraído. Existen varias alternativas de estas técnicas, entre las cuales destacan: Validación simple donde se reserva un porcentaje de la base de datos como conjunto de prueba, y no se usa para construir el modelo. Validación cruzada que es recomendable cuando tenemos una cantidad no muy elevada de datos para construir el modelo y puede que no podamos permitirnos el poder reservar parte de los mismos para la etapa de evaluación. Los datos se dividen aleatoriamente en dos conjuntos equitativos con los que se estima la precisión predictiva del modelo. Bootstrapping Consiste en construir primero un modelo con todos los datos iniciales, posteriormente, se crean numerosos conjuntos de datos, llamados bootstrap samples, haciendo un muestreo de los datos originales con reemplazo, por lo que los conjuntos construidos pueden contener datos repetidos. A continuación se construye un modelo con cada conjunto y se calcula su ratio de error sobre el conjunto de test. El error final se calcula promediando los errores obtenidos para cada muestra. Dependiendo de la tarea de minería de datos, existen diferentes medidas de evaluación de los modelos. Por ejemplo en clasificación, lo habitual es evaluar la calidad de los patrones encontrados con respecto a su precisión predictiva, que se calcula como el número de instancias del conjunto de prueba clasificadas correctamente, dividido por el número de instancias totales en el conjunto de prueba. En el caso de reglas de asociación, se suele evaluar de forma separada cada una de las reglas con objeto de restringirnos a aquellas que pueden aplicarse a un número mayor de instancias y que tienen una precisión relativamente alta sobre estas instancias. Se hace en base a dos conceptos, los cuales son soporte y confianza. La interpretación puede beneficiarse de procesos de visualización, y sirve también para borrar patrones redundantes o irrelevantes. 2.1.3.5 Difusión y uso del nuevo conocimiento Una vez construido y validado el modelo puede usarse principalmente con dos finalidades: para que un analista recomiende acciones basándose en el modelo y en sus resultados, o bien para aplicar el modelo a diferentes conjuntos de datos, de forma manual o automática. Tanto en el caso de una aplicación manual o automática del modelo, es necesario su difusión, es decir, que se distribuya y se comunique a los posibles usuarios, la utilización del nuevo conocimiento de forma independiente, y la incorporación a sistemas ya existentes, aunque hay que tener especial atención para evitar inconsistencias y posibles conflictos. También es importante medir la calidad de evolución del modelo, por lo que se debe tener un cierto mantenimiento para comprobar las prestaciones del mismo. 24 2.1.4 Tareas de la minería de datos. Dentro de la minería de datos se han de distinguir tipos de tareas, cada una delas cuales puede considerarse como un tipo de problema a ser resuelto por un algoritmo de minería de datos. Esto significa que cada tarea tiene sus propios requisitos, y que el tipo de información obtenida con una tarea puede diferir mucho de la obtenida con otra. Como se ha visto anteriormente, las distintas tareas pueden ser predictivas o descriptivas, dichas tareas se describen en las siguientes subsecciones. 2.1.4.1 Clasificación. Es probablemente la tarea más utilizada. En ella, cada instancia (o registro de la base de datos) pertenece a una clase, la cual se indica mediante el valor de un atributo que llamamos clase de la instancia. Este atributo puede tomar diferentes valores discretos, cada uno de los cuales corresponde a una clase. El resto de los atributos de la instancia (los relevantes a la clase) se utilizan para predecir la clase. El objetivo es predecir la clase de nuevas instancias de las que se desconoce la clase. Más concretamente, el objetivo del algoritmo es maximizar la razón de precisión de la clasificación de las nuevas instancias, la cual se calcula como el cociente entre las predicciones correctas y el número total de predicciones (correctas e incorrectas). Se trata de una tarea de aprendizaje supervisado, ya que es necesario conocer las clases a las que pertenecen los ejemplos utilizados para obtener y evaluar el modelo. 2.1.4.2 Regresión. Se utiliza para designar de forma general el problema de predecir una variable de tipo continuo. Se trata de aproximar el valor numérico de dicha variable conociendo el resto de atributos. Implica el aprendizaje de una función para establecer la correspondencia entre los datos y el valor a predecir. En algunos casos, se fija el tipo de función y se determina la función del tipo que mejor se adapta a los datos. El objetivo en este caso es minimizar el error entre el valor predicho y el valor real. Al igual que la clasificación, se trata de una tarea de aprendizaje supervisado. Un caso particular de regresión es el análisis de series temporales. El objetivo de esta tarea, consiste en observarla variación del valor de un atributo en el tiempo. Normalmente los valores que se analizan, están distribuidos en el tiempo. Se suelen visualizar, lo cual permite utilizar medidas de distancia para determinar la similitud entre diferentes series temporales, y para determinar y predecir comportamiento. Se diferencian de la regresión en que los datos tienen una relación temporal. 2.1.4.3 Agrupamiento o clustering. Es la tarea descriptiva por excelencia y consiste en obtener grupos naturales a partir de los datos. Se diferencia de la clasificación en que en este caso los grupos no están definidos. En lugar de analizar datos etiquetados con una clase, los analiza para generar esa etiqueta. Se trata de aprendizaje no supervisado si no se conoce el número de clúster, y supervisado en otro caso. Los datos son agrupados basándose en el principio de maximizar la similitud entre los elementos de un grupo minimizando la similitud 25 2.1.4.4 Reglas de asociación. Son también una tarea descriptiva, cuyo objetivo es identificar relaciones no explícitas entre atributos categóricos. Regla de asociación se define como un modelo que identifica tipos de asociaciones específicas en los datos. Las reglas de asociación no implican una relación causaefecto, es decir, puede no existir una causa para que los datos estén asociados. Una asociación entre dos atributos ocurre cuando la frecuencia de que seden dos valores determinados de cada uno conjuntamente es relativamente alta. Es muy común en los análisis de cestas de mercados. Un caso especial, son las reglas de asociación secuenciales, las cuales se usan para determinar patrones secuenciales en los datos. Se basan en secuencias temporales de acciones y difieren de las reglas de asociación en que las relaciones entre los datos son temporales. 2.1.4.5 Correlaciones. Se usan para examinar el grado de similitud de los valores de dos variables numéricas. El análisis de correlaciones, sobre todo las negativas, puede ser muy útil para establecer reglas de ítems correlacionados. 2.1.4.6 Categorización. Se trata de aprender una correspondencia entre los ejemplos y un conjunto de categorías. Se diferencia de la clasificación en que en la categorización, un mismo ejemplo puede tener asociadas varias etiquetas. 2.1.4.7 Priorización o aprendizaje de preferencias. Consiste en determinar un orden de preferencia a partir de dos o más ejemplos. Cada ejemplo es una secuencia de valores donde el orden de la secuencia representa la preferencia. 2.1.5 Aplicaciones. La integración de las técnicas de Minería de Datos en las actividades del día adía se está convirtiendo en algo habitual. Tradicionalmente los negocios de la distribución y la publicidad dirigida han sido las áreas que más han empleado técnicas de minería de datos para reducir costes o aumentar la receptividad de ofertas. Podemos encontrar ejemplos en todo tipo de aplicaciones: financieras, seguros, científicas (medicina, farmacia, astronomía, psicología, etc.), políticas económicas, sanitarias o demográficas, educación, policiales, procesos industriales, etc. A continuación se incluye una lista de ejemplos en algunas de las áreas mencionadas para ilustrar en qué ámbitos se puede usar la minería de datos. 26 Aplicaciones financieras y banca: Detectar patrones de uso fraudulento de tarjetas de crédito, identificar clientes leales, identificar reglas de mercado de valores a partir de históricos, etc. Análisis de mercado, distribución y comercio: Identificar patrones de compra de los clientes, buscar asociaciones entre clientes y características demográficas, etc. Seguros y salud privada: Análisis de procedimientos médicos solicitados conjuntamente, predecir qué clientes compran nuevas pólizas, etc. Medicina: Identificación de terapias médicas satisfactorias para diferentes enfermedades, asociación de síntomas y clasificación diferencial de patologías, etc. Minería de texto: Análisis de log de servidores para análisis del patrón de recorrido y consumo del cibernauta, contenido de los documentos, etc. Transportes: Determinar la planificación de la distribución entre tiendas, analizar patrones de carga. Otras áreas: Toma de decisiones, investigación científica, mejora de calidad de datos, etc. 2.2 Reglas de asociación. 2.2.1 Introducción. En el campo de la minería de datos y aprendizaje automático, las reglas de asociación se utilizan para descubrir hechos que ocurren en común dentro de un determinado conjunto de datos. Se han investigado ampliamente diversos métodos para aprendizaje de reglas de asociación que han resultado ser muy interesantes para descubrir relaciones entre variables en grandes conjuntos de datos. Dentro del aprendizaje automático se encuadran en el aprendizaje no supervisado. A diferencia de la clasificación, las reglas de asociación son descriptivas. Las tareas de minería descriptivas caracterizan las propiedades generales de los datos [3]. La extracción de reglas de asociación encuentra asociaciones interesantes y/o relaciones de correlación entre elementos de grandes conjuntos de datos. Las reglas de asociación muestran condiciones de valores en los atributos que ocurren juntos con frecuencia en los conjuntos de datos dados. Los primeros estudios sobre las reglas de asociación se centraron en datos con atributos binarios, principalmente aplicados a datos en forma transaccional. Un ejemplo típico y ampliamente utilizado en la extracción de reglas de asociación es el análisis de la cesta de la compra [4] sobre el cual se han desarrollado una variedad de métodos para tratarlo. Los datos se recolectan a través de escáneres de códigos de barras en los supermercados obteniendo bases de datos con un gran número de registros de transacciones. Cada registro contiene todos los artículos comprados por un cliente en una transacción de compra única. A partir de estos datos sería interesante saber si ciertos grupos de artículos se compran juntos constantemente, ya que se podrían utilizar para ajustar el diseño de la tienda (colocación de elementos de forma óptima con respecto otras), venta cruzada, promociones, para el diseño de catálogos e identificar segmentos de clientes basados en los patrones de compra. Un caso muy famoso sobre reglas de asociación es el de la cerveza y los pañales, basado en el comportamiento de los compradores en el supermercado. Se descubrió que muchos hombres acaban comprando pañales por encargo de sus esposas. En la cadena de supermercados WalMart, donde se descubrió este hecho, se adoptó la medida de colocar la cerveza junto a los pañales. De esta manera consiguió aumentar la venta de cerveza. Las reglas de asociación proporcionan información de este tipo de la forma ”si entonces”. Estas reglas se calculan a partir de los datos y, a diferencia de las reglas ”si entonces” de la lógica, las reglas de asociación son de naturaleza probabilística. Algunos términos básicos en la terminología de las reglas de asociación son: Ítem, que corresponde a pares atributo-valor. 27 Instancia, que corresponde aun conjunto de ítems, corresponde a un ejemplo o registro de la base de datos. El objetivo del proceso de extracción de las reglas de asociación (AR) consiste precisamente en descubrir la presencia de pares de conjunciones (atributo (A) – valor (v))que aparecen en un conjunto de datos con cierta frecuencia para formular las reglas que describen las relaciones existentes entre los atributos. Las reglas de asociación (AR) fueron definidas por primera vez por Agrawal et al. [4] como sigue: Sea I = {i1, i2,…,in} un conjunto de ítems y D = {t1, t2,…,tn} un conjunto de N transacciones, donde cada tj contiene un subconjunto de ítems. Esto es, una regla puede ser definida como X ⇒Y, donde X, Y ⊆ I y X ∩ Y = ∅. Finalmente, X y Y se llaman antecedente (o parte izquierda de la regla) y consecuente (o parte derecha de la regla), respectivamente. En [5] el problema de descubrir las reglas de asociación se divide en dos subtareas: Encontrar todos los conjuntos que superan el valor mínimo de soporte. Dichos conjuntos se denominan conjuntos frecuentes. Partiendo de los conjuntos frecuentes encontrados, generar las reglas que superan el valor mínimo de confianza. La generación de los conjuntos frecuentes es la tarea más importante y la que requiere más tiempo de computación, de ahí que sea la más estudiada entre la comunidad científica. A diferencia de la estrategia que siguen la mayoría de los investigadores en sus herramientas de extracción de reglas de asociación, el algoritmo propuesto que presentamos en este trabajo, desde el principio del proceso se obtienen reglas de asociación sin tener que realizar el proceso de construcción de los conjuntos frecuentes. Los dos estadísticos utilizados inicialmente para describir las relaciones entre antecedente y consecuente son el soporte (o apoyo, denotado Sop) y la confianza (Conf), los cuales son valores numéricos comprendidos en el intervalo [0,1]. Se define Sop(X) como la proporción de transacciones que contienen el conjunto X. Por tanto, el soporte de una regla de asociación es la proporción de transacciones que contienen tanto el antecedente como el consecuente. La confianza de una regla de asociación es la proporción de transacciones que contienen el antecedente, y que también contienen al consecuente. A continuación se muestra el cálculo del soporte con una pequeña base de datos de ejemplo que contiene 10 transacciones. Se puede observar aquí que, si se quiere obtener manzanas, de 10 transacciones disponibles 4 contienen manzanas, por lo que sop(manzanas)=4/10 = 0.4, igualmente para el sop(zanahoria) hay 3 transacciones que la contienen, así sop(zanahoria)=3/10=0.3 sop(dulcería)= 0.6 sop(manzana ⇒ dulcería)=0.3 sop(manzana ⇒ tomates)=0.3 28 Tabla 1. Base de datos de ejemplo. {ciruelas, lechugas, tomates} {apio, dulcería} {manzanas, zanahorias, tomates, papas, dulcería} {manzanas, naranjas, lechugas, tomates, dulcería} {duraznos, naranjas, apio, papas} {frijoles, lechuga, tomates} {naranjas, lechuga, zanahorias, tomates, dulcería} {manzanas, plátanos, ciruelas, zanahorias, tomates, cebollas, dulcería} {manzanas, papas} Si el soporte es suficientemente alto y la base de datos es grande, entonces la confianza es un estimado de la probabilidad de cualquier transacción futura que contenga el antecedente, también contendrá la conclusión. De la base de datos de ejemplo, vemos que: conf(manzanas ⇒)dulcería= sop(manzana ⇒ dulcería)/ sop(manzanas)= 0.3/0.4 = 0.75, conf(manzanas ⇒)tomates= 0.75, conf(zanahorias ⇒)dulcería = 1. El algoritmo de asociación tratará de descubrir todas las reglas que excedan las cotas mínimas especificadas para el soporte y la confianza. La búsqueda exhaustiva de reglas de asociación consideraría simplemente todas las combinaciones posibles de elementos, poniéndolas como antecedentes y consecuentes, entonces se evaluaría el soporte y la confianza de cada regla, y se descartarían todas las asociaciones que no satisfacen las restricciones. Sin embargo el número de combinaciones crece rápidamente con el número de elementos, por lo que si hay 1000 elementos, se tendrán 21000 combinaciones (aproximadamente 10300). Para cada antecedente existe la posibilidad de formar una regla poniendo como consecuente cualquier conjunto de elementos que no contenga algún elemento que ya se encuentra en el antecedente. Así, este procedimiento para la búsqueda de reglas de asociación es muy costoso computacionalmente, por lo que se necesita otro procedimiento más eficiente. 2.2.2 Medidas de calidad de las reglas de asociación. Se han utilizado una serie de medidas de interés para evaluar las reglas de asociación [6][7]. Todas las que vamos a describir están basadas en la probabilidad que miden la generalidad y fiabilidad de la regla. Soporte(A)[6]: El soporte de un conjunto A se define como el porcentaje de instancias de la base de datos que contienen A. En general, el soporte de A se conoce como la probabilidad de A. 29 Soporte(A ⇒ C)[6]: El soporte de la regla es el porcentaje de instancias de la base de datos que contienen A ∪ C. Se conoce como la probabilidad de A y C a la vez. ⇒ ∪ Confianza(A ⇒C)[6]: Es la probabilidad condicional de C dado A. Se refiere al número de registros de la base de datos que cubre la regla entre el número de registros que cubre el antecedente de la misma. ⇒ ⇒ Lift (A ⇒C)[8]:Se refiere a cuántas veces el antecedente y el consecuente aparecen juntos más a menudo de lo esperado en el conjunto de datos suponiendo independencia estadística entre antecedente y consecuente. Mide el grado de dependencia entre el entre el antecedente y el consecuente. Un valor superior a 1 indica dependencia positiva, mientras que un valor inferior a 1 indica dependencia negativa. ⇒ ⇒ Conviction(A ⇒C)[9]: Es una medida que tiene en cuenta tanto el soporte del antecedente como el soporte del consecuente de la regla. Valores en el intervalo (0,1)significa dependencia negativa, valores superiores a 1 significa dependencia positiva, y un valor igual a 1 significa independencia. ⇒ ∪ ⇒ Gain(A ⇒C)[9]: Se calcula a partir de la diferencia entre la confianza de la regla y el soporte del consecuente. ⇒ 2.2.3 ⇒ ⇒ Reglas de asociación cuantitativas Normalmente, las reglas de asociación se han extraído sobre bases de datos nominales o bien datos discretos como el ejemplo expuesto anteriormente, sin embargo, cuando el dominio es continuo, las reglas de asociación se conocen como reglas de asociación cuantitativas (QAR, Quantitative Association Rules). En este contexto, sea F = {F1,…,Fn} un conjunto de características, con valores en R. Sea A y C dos subconjuntos disjuntos de F, esto es, A ⊂ F, C ⊂ F, y A ∩ C = ∅. Una QAR es una regla X ⇒Y, en la que las características en A pertenecen al antecedente X, y las características en C pertenecen al consecuente Y, tales que: [ 30 ] donde li y lj representan el límite inferior de los intervalos para Fi y Fj respectivamente y la pareja ui y uj el límite superior. Por ejemplo, una QAR podría ser numéricamente expresada como: F1 [12, 25] F3 [5, 9] ⇒ F2 [3, 7] F5 [2,8] donde F1 y F3 constituyen las características que aparecen en el antecedente y F2 y F5 lasque aparecen en el consecuente. Sin embargo, la mayoría de las aplicaciones a datos que contienen atributos numéricos suelen ser abordados por una previa discretización de estos atributos numéricos. Como se comentó al inicio de esta memoria, la propuesta desarrollada, a diferencia de estos métodos, tratará los atributos continuos sin necesidad de discretizar los datos previamente. Tabla 2. Datos de ejemplo. Transacción t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 F1 178 186 167 199 154 173 177 159 183 178 F2 75 93 60 112 47 83 91 53 88 93 F3 24 37 22 30 42 33 63 48 35 58 Si estamos trabajando con Reglas de Asociación Cuantitativas (QAR) consideremos una regla ejemplo: F1 [180; 189] F2 [85; 95] ⇒ F3 [33; 36] Para este caso, el soporte del antecedente es del 20 %, ya que2 transacciones, t2 y t9, simultáneamente satisface que F1 y F2 pertenece a los intervalos[180,189] y [85,95], respectivamente (2 transacciones de 19, sop(A) = 0.2). En cuanto al soporte del consecuente, sop(C) = 0.2 porque sólo las transacciones t6 y t9 satisfacen queF3 [33, 36]. En cuanto a la confianza, sólo una transacción t9 satisface los tres atributos (F1 y F2 en el antecedente, y F3 en el consecuente) que aparecen en la regla. En otras palabras, sop(A ⇒C) = 0.1. Consecuentemente, conf(A ⇒ C) = 0.1/0.2 = 0.5, esto es, la regla tiene una confianza del 50%. Finalmente, el lift (o interés) es lift(A ⇒ C) = 0.1/(0.2*0.2) = 2.5,ya que sop(A ⇒ C = 0.1, sop(A) = 0.2 y sop(C) = 0.2, como se discutió antes. 31 2.2.4 Algoritmo a priori. El algoritmo Apriori [4], desarrollado por Agrawal y Srikant en 1994, es el algoritmo para encontrar reglas de asociación más conocido y citado en la literatura que sirve de base para la mayoría de los algoritmos. La principal mejora respecto a los algoritmos AIS [4]y SETM [11] se encuentra en la forma de generar los conjuntos candidatos, puesto que obliga a cumplir la propiedad de los conjuntos frecuentes: cualquier subconjunto de un conjunto frecuente debe ser también un conjunto frecuente. Mediante esta propiedad se consigue que no se construyan muchos de los conjuntos frecuentes que necesitaban los algoritmos AIS y SETM. El algoritmo Apriori se usa en minería de datos para encontrar reglas de asociación en un conjunto de datos. Este algoritmo se basa en el conocimiento previo o “a priori” de los conjuntos frecuentes. Utiliza una estrategia de búsqueda primero en amplitud. Cabe destacar que este algoritmo trabaja discretizando previamente los valores. De este algoritmo existen diferentes variantes. Está disponible en WEKA. Conceptualmente, el algoritmo Apriori tiene dos pasos para generar los conjuntos de kitemsets frecuentes: Obtención de k-ítems candidatos a ser frecuentes. Obtención de los k-itemsets candidatos. Se obtiene eliminando los que no tengan todos sus subconjuntos frecuentes. Si calculamos el soporte de los itemsets. Se obtiene el conjunto resultante de eliminar aquellos subconjuntos que no superen el soporte mínimo. El algoritmo ataca el problema reduciendo el número de conjuntos considerados. El usuario define un soporte mínimo, minsop. Apriori genera todos los conjuntos que cumplen con la condición de tener un soporte mayor o igual a minsop. Para cada conjunto frecuente X se generan todas las reglas de asociación que lo contengan. Cualquier regla que no satisfaga las restricciones impuestas por el usuario, como por ejemplo la confianza mínima, se desechan, y las reglas que si lo cumplen se conservan. Guardando todos los conjuntos frecuentes y su soporte, tenemos toda la información requerida para generar y evaluar las reglas de asociación que satisfacen minsop. En la solución del problema del carro de la compra del supermercado, cada producto individual aparece solamente en una pequeña cantidad total de las transacciones. Así el número de conjuntos frecuentes es relativamente bajo, aun cuando minsop sea un valor muy pequeño. Por eso, el utilizar conjuntos frecuentes permite reducir el espacio de búsqueda a un tamaño más manejable, debido a que los datos del carro de la compra se encuentran muy dispersos. La búsqueda inicial de reglas de asociación permite encontrar todas las asociaciones que satisfagan una restricción inicial de soporte y confianza. Esto puede llevar a obtener una gran cantidad de reglas de asociación a partir de los datos, las cuales no serían manejables. Por 32 tanto es deseable reducir el número de reglas de tal manera que sólo queden las más interesantes. 2.2.5 Otros algoritmos de extracción de reglas de asociación. A continuación se describen otros de los algoritmos existentes en la literatura para la extracción de reglas de asociación de los que se dispone su implementación. 2.2.5.1 Eclat [12]. Los algoritmos del tipo Eclat, fueron introducidos en [12], reducen la cantidad de operaciones de E/S, aunque esta vez atravesando la base de datos sólo una vez. Se basan en realizar un agrupamiento (clustering) entre los ítems para aproximarse al conjunto de ítems frecuentes maximales y luego emplean algoritmos eficientes para generar los ítems frecuentes contenidos en cada grupo. Para el agrupamiento proponen dos métodos que son empleados después de descubrir los conjuntos frecuentes de dos elementos: el primero, por clases de equivalencia: esta técnica agrupa los itemsets que tienen el primer ítem igual. El segundo, por la búsqueda de cliques maximales: se genera un grafo de equivalencia cuyos nodos son los ítems, y los arcos conectan los ítems de los 2-itemsets frecuentes, se agrupan los ítems por aquellos que forman cliques maximales. Al igual que Apriori, trabaja con valores discretizados. Está disponible en el paquete arule de R system. 2.2.5.2 FP-Growth[13]. Este algoritmo está basado en una representación de árbol de prefijos de una base de datos de transacciones llamado FP-Tree Frequent Pattern Tree. La idea básica del algoritmo FP-Growth (Frequent Pattern Growth) puede ser descrita como un esquema de eliminación recursiva: en un primer paso de preprocesamiento se borran todos los ítems de las transacciones que no son frecuentes individualmente o no aparecen en el mínimo soporte de transacciones, luego se seleccionan todas las transacciones que contienen al menos un ítem frecuente, se realiza esto de manera recursiva hasta obtener una base de datos reducida. Al volver, se borran los ítems procesados de la base datos de transacciones en la memoria y se empieza otra vez, y así con el siguiente ítem frecuente. Los ítems en cada transacción son almacenados y luego se ordena descendentemente su frecuencia en la base de datos. Después de que se han borrado todos los ítems infrecuentes de la base de datos de transacciones, se pasa al árbol FP. En un árbol FP cada camino representa el grupo de transacciones que comparten el mismo prefijo, cada nodo corresponde a un ítem. Todos los nodos que referencian al mismo ítem se ponen juntos en una lista, de modo que todas las transacciones que contienen un ítem específico pueden encontrarse fácilmente y contarse en la lista. Esta lista puede ser indexada a través de la cabeza, lo cual también expone el número total de ocurrencias del ítem en la base de datos. 2.2.6 Herramientas de uso de Reglas de Asociación. RapidMiner/YALE[17]http://rapid-i.com/content/view/181/190/. Orange Ruby implementation (AI4R) 33 34 Arules Frequent Itemset Mining Implementations Repository (FIMI) Frequent pattern mining implementations from Bart Goethals WEKA KNIME Data Mining Software by Mohammed J. Zaki Magnum Opus, a system for statistically sound association discovery. LISpMiner FerdaDataminer STATISTICA Open Standards Association Rules in PMML: http://www.dmg.org/v4-0/AssociationRules.html 3 Estado del arte. Una rigurosa revisión de los trabajos publicados recientemente revela que la extracción de AR con atributos numéricos es un tema emergente desde que fue introducido por primera vez en [18]. Los algoritmos genéticos se han utilizado con profusión para generar reglas en muchos problemas de aprendizaje[19][20][21]. Además, los algoritmos genéticos se utilizan como una herramienta en muchos problemas del mundo real, tales como planificación [22], predicción[23], diseño[24] o clasificación[19]. También son estrategias comunes en la computación evolutiva, la hibridación con lógica difusa[25], redes neuronales [26]o simulación [27]. Sin embargo, muchos investigadores se centran en bases de datos con atributos discretos, mientras que la mayoría de las bases de datos del mundo real contienen fundamentalmente atributos continuos, como en el caso del análisis de series temporales [28].Además, la mayoría de las herramientas que aparentemente trabajan en dominios continuos simplemente discretizan los atributos usando una estrategia específica y después, tratan esos atributos como si fueran discretos [29][4]. Una revisión de la reciente literatura publicada revela que la mayoría de los trabajos que proporcionan metaheurísticas y algoritmos de búsqueda relacionados con AR con atributos continuos es escaso. Así, los autores de [30]proponen un algoritmo evolutivo para descubrir reglas de asociación numéricas, dividiendo el proceso en dos fases. En la primera encuentran los conjuntos de atributos que están presentes frecuentemente en la base de datos llamados frequent itemsets. En la segunda fase, se extraen reglas se extraen de los conjuntos calculados con anterioridad. El trabajo presentado en[31]estudió el conflicto entre problemas de soporte y confianza mínimos. Se propone un método para encontrar AR cuantitativas mediante clustering de las transacciones de una base de datos. Posteriormente, esas agrupaciones se proyectaron en los dominios de los atributos para crear intervalos significativos que podrían ser solapados. En[32], se estudiaron series temporales hidrológicas . Primero, los atributos numéricos se transformaron en intervalos mediante técnicas de clustering. Después, las AR se generaron haciendo uso del conocido algoritmo Apriori[4]. Un sistema clasificador fue presentado en [33]con el objetivo de extraer AR cuantitativas sobre flujos de datos data streams (tanto numéricos como categóricos) sin etiquetas. La principal novedad de este enfoque radica en la eficiencia y la adaptabilidad de los datos recogidos online. Una optimización meta heurística basada en técnicas de enjambre de partículas aproximado se presentó en[34]. En este caso, la singularidad fue la obtención de los valores que determinan los intervalos para reglas de asociación en lugar de conjuntos de elementos frecuentes. Evaluaron y probaron varios operadores nuevos tales como redondeo, reparación y filtrado en datos sintéticos. 35 MODENAR es un algoritmo genético basado en frente pareto multi-objetivo que fue presentado en [35]. La función fitness estaba compuesta de cuatro objetivos diferentes: soporte, confianza, comprensibilidad de la regla (para ser maximizado) y la amplitud de los intervalos que constituyen la regla (para ser minimizado). El trabajo publicado en [12] presentó un nuevo enfoque basado en tres nuevos algoritmos: clustering valor-intervalo, clustering intervalo-intervalo y clustering matriz-intervalo. Su aplicación fue encontrada especialmente útil en la extracción de información compleja. Otro GA fue usado en [36] para obtener AR numéricas. Sin embargo, el único objetivo a optimizar en la función fitness fue la confianza. Para satisfacer este propósito los autores evitan especificar umbrales para el soporte mínimo, lo cual fue la principal contribución de este trabajo. El uso de AR en bioinformática es también muy extendido. En el trabajo de [37]se analizaron datos de microarray utilizando reglas de asociación cuantitativas. Para ello, eligieron una variante del algoritmo introducido en [38], basado en espacios medios o combinaciones lineales de variables delimitadas contra una constante. Por otra parte, Gupta et al. extrajeron reglas de asociación para secuencias de proteínas [39] y por esta razón se propone un nuevo algoritmo con cuatro pasos a seguir. Primero se hace una partición equidistante de los atributos, en segundo lugar, las particiones se asignan a enteros consecutivos, que representan los intervalos; tercero, encuentran el soporte de todos los intervalos; y, finalmente usan los conjuntos frecuentes para generar reglas de asociación. Por otra parte, los autores en [40]propusieron un nuevo método de extracción de reglas de asociación temporales basados en el algoritmo Apriori. Por lo tanto, se identificaron dependencias temporales de series temporales relacionadas con genes. Las reglas de asociación han sido aplicadas en conjuntos difusos por varios autores. Kaya y Alhajj primero propusieron un framework basado en algoritmos genéticos para extraer reglas de asociación difusas en[41]. Para ser precisos, se presentó un método de clustering para ajustar los centroides de los clústeres y a continuación, proporcionaron un enfoque diferente basado en el conocido algoritmo de clustering CURE[42] para generarlas funciones de pertenencia. Más tarde, en [43]introdujeron un algoritmo genético para optimizar las funciones de pertenencia para extraer reglas de asociación ponderadas difusas. Su propuesta se ajusta automáticamente a estos conjuntos para proporcionar un mínimo de soporte y confianza. Para conseguir este objetivo, los valores base de las funciones de pertenencia para cada atributo cuantitativo se refinaron mediante la maximización de dos funciones de evaluación diferentes; el número de conjuntos frecuentes grandes y el promedio del intervalo de confianza de las reglas generadas. Por otra parte, Alcalá-Fdez et al. [44]presentaron un nuevo algoritmo para extraer reglas de asociación difusas y funciones de pertenencia por medio de aprendizaje evolutivo basado en el modelo de representación de2−tuplas. Finalmente, Ayubi et al. [45]propusieron un algoritmo que extraía reglas generales cuya aplicabilidad osciló desde atributos discretos a atributos discretizados cuantitativos. Es decir, almacenan conjuntos frecuentes generales en una estructura en árbol para ser recursivamente computados. Dirigen igualmente las reglas de asociación en forma de tabla permitiendo un conjunto de operadores diferentes. 36 En cuanto a las series temporales, en [46] se proponen técnicas de minería de datos para descubrir AR de las mismas. Los autores extraen satisfactoriamente datos temporales recuperados de múltiples sesiones de hemodiálisis mediante la aplicación de preprocesamiento, reducción de datos y filtrado como un paso previo al proceso de extracción de reglas de asociación. Finalmente, las AR fueron obtenidas siguiendo la conocida estrategia de generación de itemset de Apriori[4]. En [47]se introduce un algoritmo para descubrir patrones temporales frecuentes y reglas de asociación temporales. El algoritmo extiende el algoritmo MEMISP [48]que descubre patrones secuenciales mediante técnicas recursivas find-then-index. Fue especialmente notable la restricción de distancia máxima incluida para eliminar patrones insignificantes reduciendo, por lo tanto, el número de reglas de asociación temporales. En el trabajo introducido en [49]aplican minería de datos sobre series temporales de datos del océano para descubrir relaciones entre las variaciones de salinidad y temperatura. Concretamente, los autores descubrieron patrones espacio-temporales de las variables anteriormente mencionadas y presentaron QAR usando los algoritmos PrefixSpan y FITIc[50][51]. El concepto de ventana deslizante ha sido aplicado con éxito para predecir series temporales en[52][53]. Sin embargo, este concepto ha sido utilizado recientemente [54]con el propósito de obtener un bajo uso de memoria y bajo coste computacional basado en el algoritmo Apriori para descubrir itemsets cuyo soporte aumente con el tiempo de las series temporales. 37 38 4 Metodología. En este capítulo se describe la metodología utilizada para la obtención de reglas de asociación. En particular, se presenta una descripción del algoritmo en la sección 4.1. A continuación, en la sección 4.2, se formaliza dicho algoritmo proporciona el modelo matemático subyacente. Por último, en las secciones 4.3 y 4.4 se explica el procedimiento para obtener las mejores reglas de asociación, atendiendo a dos criterios diferentes: maximización del lift y maximización del promedio de los parámetros de calidad estudiados. 4.1 Descripción del algoritmo. En términos generales, nuestro algoritmo se divide en tres partes: Una primera parte, que consiste en un formulario donde indicamos el numero de atributos con los que vamos a generar nuestras reglas a partir de la base de datos, así como un rango de consecuentes de dichos datos con los que vamos a trabajar, de manera que nos centramos en generar únicamente reglas cuyos consecuentes se encuentren en el intervalo marcado en el formulario y que contengan tantos atributos como atributos hallamos marcado en el mismo. Hemos de tener en cuenta que no podemos indicar mas atributos de los que realmente contienen nuestros datos. Una segunda parte que genera de manera aleatoria un número de reglas a partir de los datos que tenemos en la base de datos. Optamos por generar las reglas de manera aleatoria por el alto coste computacional que tendría hacerlo con todas las posibilidades. Una tercera parte que calcula algunas medidas para cada una de las reglas y genera diferentes ficheros que contienen: o El numero de reglas tratadas en total y las medidas para cada regla. o Las 10 reglas que obtengan la mejor puntuación para el lift. o Las 10 reglas que obtengan la mejor puntuación para la media de todas sus reglas, una vez hayamos normalizado todas. Para explicar el procedimiento, estudiamos el siguiente ejemplo: Imaginemos que seleccionamos trabajar con 3 atributos, y con un rango de consecuentes entre 3.2 y 6. Del total de filas de la base de datos, nos quedaríamos únicamente con las filas sombreadas, tal y como muestra la siguiente tabla: Tabla 3. Conjunto de datos de ejemplo. Atributo 1 2 7 1 4 8 5 2 Atributo 2 46 35 34 44 43 32 34.5 Atributo 3 64 89 76 72 76 87 73 Consecuente 1.1 3.2 3.4 6 5 8 4 39 El siguiente paso es ordenar todos los atributos de los datos seleccionados de menor a mayor, de forma que obtenemos una matriz de datos como la siguiente: Tabla 4. Conjunto de datos ordenados de menor a mayor. Atributo 1 1 2 4 7 8 Atributo 2 34 34.5 35 43 44 Atributo 3 72 73 76 76 79 Nos encontramos en la segunda parte de nuestro algoritmo. Tenemos que generar nuestras reglas a partir de los datos ordenados de mayor a menor, de forma aleatoria, con la condición de que si en alguno de los rangos, el valor se repite, esa regla no es valida y queda descartada. Dado que estamos trabajando con tres atributos, vamos a obtener tres rangos (uno para cada atributo) Para generar nuestras reglas vamos a iterar tantas veces como número de filas estemos tratando y en cada iteración vamos a comprobar que la regla que vamos a generar cumple con una serie de condiciones que explicamos más adelante. En nuestro caso vamos a iterar cinco veces, (dado que existen cinco filas con el consecuente entre el rango marcado en el formulario) y vamos a obtener de forma aleatoria una serie de reglas. Para explicar todo este procedimiento, volvemos a la tabla 4, que contiene los datos ordenados de menor a mayor, y añadimos una columna que representa el numero de fila (a partir de ahora posición). Tenemos algo tal que así: Posición 0 1 2 3 4 Atributo 1 1 2 4 7 8 Atributo 2 34 34.5 35 43 44 Atributo 3 72 73 76 76 79 Hemos mencionado que para generar nuestras reglas, iteramos tantas veces como numero de filas resulten de los datos indicados en el formulario. En cada iteración generamos los rangos de la regla. Para generar cada rango, marcamos una posición que representa el valor inferior del rango, y otra posición que representa el valor superior para cada uno de los atributos. Dichas posiciones se generan de manera aleatoria, teniendo en cuenta que la posición del rango superior siempre sea mayor a la del rango inferior, esto nos permite minimizar la posibilidad de que los valores del rango sean iguales, dado que trabajamos con los datos ordenados de menor a mayor, una posición mayor, deberá contener un valor mayor. Por ejemplo, si tenemos un rango con las posiciones 0,1 para el atributo 1, el rango sería (1,2), donde la posiciones representa la fila para ese rango. Siguiendo este procedimiento cinco veces (hemos dicho que iteramos cinco veces) obtenemos las siguientes reglas: 40 Tabla 5. Reglas obtenidas de forma aleatoria. Provisional. Regla 1 Regla 2 Regla 3 Regla 4 Regla 5 Rango 1 (1,2) (4,7) (2,7) (4,8) (2,4) Rango 2 (34.5,35) (35,43) (35,43) (43,44) (34,34.5) Rango 3 (76,79) (72,73) (76,76) (73,76) (73,79) Observamos que el Rango 3 para la tercera regla, lo hemos marcado en rojo. Con esto queremos indicar que esa regla no sería valida y realmente no debería de aparecer en la matriz. Dado que generamos los rangos a partir de las posiciones generadas de forma aleatoria, cabe la posibilidad de obtener un rango con el valor inferior y superior iguales, aunque la posición superior sea mayor que la inferior. Esto nos ocurre con el tercer atributo y las posiciones 2 y 3. Tal y como se ha mencionado, esta regla no sería valida, y no se tendría en cuenta. La matriz de reglas generadas sería tal que así: Tabla 6. Reglas obtenidas de forma aleatoria. Definitiva. Regla 1 Regla 2 Regla 4 Regla 5 Rango 1 (1,2) (4,7) (4,8) (2,4) Rango 2 (34.5,35) (35,43) (43,44) (34,34.5) Rango 3 (76,79) (72,73) (73,76) (73,79) El siguiente paso es calcular una serie de medidas para cada regla. Las medidas que vamos a calcular son: Confianza. Lift. Conviction. Gain. Esto implica que para cada una de las reglas calculemos el Soporte del antecedente (SopA), el Soporte del consecuente (SopC) y el Soporte del antecedente y consecuente a la vez (SopAC). De nuevo, realizamos una comprobación, ya que si el SopA o el SopAC es 0, la regla que estamos tratando queda descartada. Llegados a este punto nos encontramos en la tercera fase de nuestro algoritmo. En esta fase, se realiza un filtrado de las reglas obtenidas y generamos tres ficheros: El primer fichero se llama reglas.txt, y contiene todas las reglas que se hayan generado, teniendo en cuenta las cuestiones antes mencionadas: 1. No puede existir un rango con el valor superior e inferior iguales. 41 2. El SopA de la regla, así como el SopAC, tienen que ser distintos que cero. El segundo fichero se llama estrategia1.txt. El tercer fichero se llama estrategia 2.txt. 4.2 Formalización del algoritmo. { } un conjunto de características con valores en Sea terremoto. Las deseadas reglas son definidas por la siguiente ecuación: que describen un ⇒ Dónde y representan el limite inferior y superior del intervalo para respectivamente, y los limites y son los limites dados en función de los objetivos del problema que se desea resolver. En el contexto de series de tiempo sísmicas, representa la magnitud del terremoto que se quiere predecir y los límites y dependen del tamaño requerido de los terremotos que se van a pronosticar. El método propuesto para obtener reglas de asociación cuantitativas (QAR) se describe como sigue. Primero, el conjunto de datos se ordena por la característica , que representa el consecuente de la regla. Una vez que se establecen los límites y , el rango de las características restantes se calcula como: { Sean donde ( y con } dos funciones definidas por: { ( )} { ( )} ) es el número de elementos del conjunto . Sea el conjunto de pares de valores tales que la amplitud del intervalo a buscar para la característica sea suficientemente pequeña. Esto es, { } donde es la amplitud máxima permitida para la característica dado dependiendo de las reglas deseadas. Así, para cualquier valor ( menor son: ) , las reglas generadas por los valores k-mayor y k- [ 42 , que es un parámetro ( ) ( )] ⇒ 4.3 Obtención de reglas de asociación raras. Se explica aquí la primera de las estrategias utilizadas para la obtención de reglas de asociación. En particular, nos interesamos por aquellas reglas que posean un Lift elevado, ya que serán aquellas reglas que representen confianzas elevadas y soportes de consecuente pequeños. Generamos el fichero “estrategia1.txt”. Este fichero contiene las 10 reglas con la mejor puntuación para la medida lift, tras haber ejecutado el algoritmo 100 veces. El procedimiento es bastante simple: 1. Se calcula el lift para todas las reglas obtenidas a partir de los datos del formulario. 2. Se ordena la matriz de reglas obtenidas en función de la medida lift de mayor a menor. 3. Imprimimos en el fichero las 10 primeras reglas de la matriz, que contienen las reglas con la mejor medida para el Lift tras la ordenación. Un ejemplo de este fichero lo tenemos en la siguiente imagen: Figura 2. Estrategia1.txt. Ejemplo de resultados obtenidos. En la imagen no aparecen todos los resultados generados en el fichero, tan solo una muestra de tres reglas. En la cabecera se imprimen algunos datos que pueden sernos de utilidad, como el intervalo marcado en el formulario para el consecuente, el número total de reglas obtenidas y la medida que hemos utilizado para la ordenación (podemos ordenar por otras medidas, aunque en este punto nos centramos en la ordenación por Lift). 43 4.4 Obtención de reglas de asociación compensadas. Se explica aquí la segunda de las estrategias utilizadas para la obtención de reglas de asociación. En particular, nos interesamos por aquellas reglas que posean un promedio de todas las reglas elevado. Generamos el fichero “estrategia2.txt”. Este fichero contiene las 10 reglas con la mejor puntuación para el promedio de las medidas calculadas, tras haber ejecutado el algoritmo 100 veces. El procedimiento es bastante simple: 1. Se normaliza el Lift para todas las reglas dividiendo el valor del Lift de cada regla por el valor del Lift para la regla con mayor Lift. 2. Se normaliza el Conviction para todas las reglas dividiendo el valor del Conviction de cada regla por el valor del Conviction para la regla con mayor Conviction. 3. A continuación se calcula el promedio de las medidas. Para ello se suma el valor de todas las medidas, utilizando el Lift y el Conviction normalizado que acabamos de calcular, y dividiendo entre cuatro, ya que estamos trabajando con cuatro medidas. (Confianza, Lift, Conviction y Gain). 4. Se ordena la matriz de reglas obtenidas en función de la medida ponderada de mayor a menor. 5. Imprimimos en el fichero las 10 primeras reglas de la matriz, que contienen las reglas con la mejor medida ponderada tras la ordenación. Un ejemplo de este fichero lo tenemos en la siguiente imagen: Figura 3. Estrategia2.txt. Ejemplo de resultados obtenidos. 44 En la Figura 4 no aparecen todos los resultados generados en el fichero, tan solo una muestra de tres reglas. En la cabecera se imprimen algunos datos que pueden sernos de utilidad, como el intervalo marcado en el formulario para el consecuente, el número total de reglas obtenidas y la medida que hemos utilizado para la ordenación (podemos ordenar por otras medidas, aunque en este punto nos centramos en la ordenación por la media de las medidas). 45 46 5 Resultados. 5.1 Descripción de la base de datos. El conjunto de datos utilizados en este trabajo se ha obtenido del catalogo del Instituto Geográfico Nacional (IGN), que contiene información sobre la localización y magnitud de terremotos en España. Adicionalmente, se ha calculado el parámetro b-value de la ley de Gutenberg-Richter [50], ya que refleja las propiedades geofísicas y tectónicas de las rocas así como las variaciones de presión de fluido en la superficie caracterizada. Cada muestra de la base de datos esta compuesta por cuatro atributos: Momento en el que ocurrió el terremoto (tiempo). b-value asociado. Magnitud del terremoto actual (Mc). Magnitud del terremoto anterior (Mp). Cabe destacar que terremotos con una magnitud inferior a 3.0, las replicas y los temblores han sido eliminados para evitar dependencia entre datos. Aunque la Península Ibérica se divide en 27 zonas sismogenéticas, de acuerdo al IGN, tan solo se estudian las zonas 26 (Mar de Alborán) y 27 (la Falla Occidental Azores-Gibraltar) dado que son las zonas más activas. Se han analizado un total de 873 terremotos entre los años 1981 y 2008. 5.2 Tablas de resultados. En este apartado se analizan los datos resultantes tanto en la obtención de reglas de asociación raras, como en la obtención de reglas de asociación compensadas. Como el objetivo es encontrar patrones para predecir la ocurrencia de terremotos, la magnitud del terremoto actual, Mc, es de forma obligada el único atributo del consecuente. Mientras que para estudiar reglas de asociación raras (Estrategia 1) el atributo Mc se estudia en el intervalo [4.4,6.2], para obtener reglas de asociación compensadas (Estrategia 2), dicho atributo se divide en tres intervalos sin solapamiento, de forma que estudiamos terremotos de una baja magnitud [3.0, 3.5), terremotos de una magnitud media [3.5,4.4) y grandes terremotos con una elevada magnitud [4.4, 6.2] (teniendo en cuenta que el terremoto de mayor magnitud analizado es de 6.2). En todas las tablas se distinguen las siguientes columnas: Tiempo: Representa el incremento de tiempo transcurrido en años desde la ocurrencia del terremoto anterior. 47 b-value: Representa el incremento del b-value asociado al terremoto. Mp: Representa el incremento de la magnitud del terremoto ocurrido con anterioridad. Además, para evaluar la calidad de las reglas, se muestran las siguientes columnas: Confianza: Representa la confianza para la regla calculada. SopA: Representa el soporte del antecedente para la regla calculada. SopC: representa el soporte del consecuente para la regla calculada. Lift: Representa el valor del Lift para la regla calculada. Promedio: Representa el promedio de las medidas calculadas (Confianza, Lift, Conviction, Gain). 5.2.1 Estrategia 1. Reglas de asociación raras. En este apartado estudiamos el atributo Mc en el intervalo [4.4,6.2], lo que supone una magnitud elevada. Nos interesamos por aquellas reglas que posean un Lift elevado, ya que serán aquellas reglas que representen confianzas elevadas y soportes de consecuente pequeños. Los datos obtenidos tras la ejecución del algoritmo 100 veces se presentan en la siguiente tabla: Tabla 7. Reglas de asociación raras con consecuente Tiempo b-Value Magnitud Confianza SopAC Lift (0.026,0.100) (-0.098,-0.053) (3.900,4.400) 1.000 0.001 16.472 (0.001,0.019) (-0.058,-0.016) (3.700,4.000) 0.778 0.008 12.811 (0.019,0.331) (-0.057,-0.016) (4.400,5.200) 0.750 0.003 12.354 (0.002,0.030) (-0.119,-0.019) (3.900,6.200) 0.727 0.009 11.979 (0.011,0.100) (-0.119,-0.046) (3.400,5.000) 0.600 0.010 9.883 (0.009,0.331) (-0.074,-0.053) (4.000,5.300) 0.500 0.002 8.236 (0.011,0.060) (-0.070,-0.043) (3.900,5.000) 0.400 0.002 6.589 (0.020,0.331) (-0.024,-0.012) (4.100,4.700) 0.333 0.001 5.491 (0.030,0.080) (-0.083,-0.011) (3.800,4.400) 0.250 0.002 4.118 (0.055,0.137) (-0.039,-0.010) (3.600,5.000) 0.250 0.001 4.118 La primera de las conclusiones que se pueden sacar tras la observación de la Tabla 7 es que antes de la ocurrencia de un terremoto de magnitud elevada suceden grandes decrementos del valor de b. Esto es, descensos acusados en dicho valor son precursores de terremotos de magnitud mayor que 4.4. Del mismo modo, hay que precisar qué significa acusado. Si nos fijamos en los intervalos de tiempo transcurridos todos oscilan alrededor de 0.1, es decir, aproximadamente un mes. 48 En definitiva, podemos concluir que si transcurrido un mes, el valor de b ha descendido en un intervalo aproximado de [-0.15, -0,05] existirá una probabilidad muy elevada (confianzas rozando el 1.0) de que ocurra un terremoto de magnitud mayor de 4.4. 5.2.2 Estrategia 2. Reglas de asociación compensadas. Nos interesamos por aquellas reglas que posean un promedio de las medidas elevado. Como se ha mencionado anteriormente, estudiamos el atributo Mc en tres intervalos, que corresponden a terremotos de una baja, media y alta magnitud respectivamente. 5.2.2.1 Reglas de asociación compensadas para terremotos de baja magnitud. En este apartado estudiamos el atributo Mc en el intervalo [3.0, 3.5), lo que supone una magnitud pequeña. Los datos obtenidos tras la ejecución del algoritmo 100 veces se presentan en la siguiente tabla: Tabla 8. Reglas de asociación compensadas con consecuente Tiempo b-Value Magnitud Confianza SopAC Lift Promedio (0.000,0.091) (0.023,0.069) (3.000,3.300) 0.980 0.057 1.798 0.849 (0.010,0.286) (0.022,0.034) (3.000,4.000) 0.977 0.048 1.791 0.846 (0.001,0.039) (0.017,0.121) (3.100,3.300) 0.969 0.036 1.777 0.840 (0.151,0.362) (0.011,0.056) (3.000,3.700) 0.955 0.024 1.751 0.830 (0.033,0.109) (0.013,0.048) (3.200,4.400) 0.952 0.023 1.747 0.700 (0.014,0.062) (0.025,0.071) (3.000,5.300) 0.938 0.034 1.719 0.660 (0.014,0.366) (0.020,0.047) (3.100,3.800) 0.936 0.050 1.717 0.657 (0.004,0.025) (0.018,0.041) (3.000,3.500) 0.931 0.031 1.708 0.646 (0.005,0.109) (0.021,0.050) (3.100,3.400) 0.926 0.029 1.698 0.637 (0.001,0.013) (0.037,0.064) (3.000,4.900) 0.923 0.014 1.693 0.632 (0.070,0.235) (0.012,0.042) (3.200,3.300) 0.917 0.013 1.681 0.621 Es importante resaltar que el promedio de las medidas se ha realizado normalizando todas ellas, de tal manera que todos los valores estén comprendidos entre 0 y 1. Como se puede observar, todas las reglas obtenidas tienen una elevada confianza y un lift superior a 1, que es, como se dijo, el umbral para considerar una regla como interesante. Si nos ceñimos a los intervalos de los atributos en el antecedente se pueden sacar las siguientes conclusiones. En primer lugar, la magnitud del terremoto anterior suele ser pequeña, oscilando entre de 3 y 3.5 en la mayoría de los casos. Además, el incremento del valor b siempre es moderadamente positivo (a diferencia de los demás casos) y el tiempo transcurrido es de aproximadamente 0.2 años, o lo que es lo mismo, unos dos meses y medio. En conclusión, podemos afirmar que si el b-value se mantiene más o menos constante, tal vez con un ligero incremento, que el terremoto anterior no tuvo una magnitud demasiado elevada 49 y que el tiempo transcurrido ronda los dos meses, existe una probabilidad muy elevada de que el siguiente terremoto tenga una magnitud comprendida en el intervalo [3.0, 3.5). 5.2.2.2 Reglas de asociación compensadas para terremotos de magnitud media. En este apartado estudiamos el atributo Mc en el intervalo [3.5, 4.4), lo que supone una magnitud media. Los datos obtenidos tras la ejecución del algoritmo 100 veces se presentan en la siguiente tabla: Tabla 9. Reglas de asociación compensadas con consecuente Tiempo b-Value Magnitud Confianza SopAC Lift Promedio (0.004,0.096) (-0.024,-0.006) (3.900,4.200) 0.909 0.011 2.307 0.833 (0.024,0.118) (-0.066,-0.020) (3.500,4.700) 0.889 0.018 2.256 0.818 (0.010,0.070) (-0.047,-0.028) (3.200,4.600) 0.882 0.017 2.239 0.813 (0.007,0.039) (-0.008,-0.003) (3.500,3.700) 0.875 0.008 2.221 0.793 (0.005,0.045) (-0.065,-0.007) (4.300,5.100) 0.857 0.007 2.175 0.750 (0.005,0.187) (-0.049,-0.019) (3.200,4.600) 0.845 0.056 2.144 0.725 (0.006,0.074) (-0.048,-0.024) (3.400,3.900) 0.833 0.017 2.115 0.703 (0.018,0.020) (-0.026,-0.008) (3.400,3.900) 0.833 0.006 2.115 0.703 (0.001,0.227) (-0.009,-0.006) (3.900,5.900) 0.833 0.011 2.115 0.703 (0.003,0.013) (-0.005,0.001) (3.900,4.100) 0.833 0.006 2.115 0.703 Es importante resaltar que el promedio de las medidas se ha realizado normalizando todas ellas, de tal manera que todos los valores estén comprendidos entre 0 y 1. Como se puede observar, todas las reglas obtenidas tienen una elevada confianza y un lift superior a 2, lo que indica que son reglas de alta calidad. En cuanto a los intervalos de los atributos en el antecedente se pueden sacar las siguientes conclusiones. En primer lugar, la magnitud del terremoto anterior suele ser moderada, oscilando entre de 3.5 y 4.5 en la mayoría de los casos. Además, el incremento del valor b es moderadamente negativo y el tiempo transcurrido es de aproximadamente 0.1 años, o lo que es lo mismo, algo más de un mes. En conclusión, podemos afirmar que si el b-value se mantiene más o menos constante, pero con un ligero decremento, que el terremoto anterior tuvo una magnitud moderada y que el tiempo transcurrido es de aproximadamente un mes, existe una alta probabilidad de que el siguiente terremoto tenga una magnitud comprendida en el intervalo [3.5, 4.4). 50 5.2.2.3 Reglas de asociación compensadas para terremotos de magnitud alta. En este apartado estudiamos el atributo Mc en el intervalo [4.4, 6.2], lo que supone una magnitud alta. Los datos obtenidos tras la ejecución del algoritmo 100 veces se presentan en la siguiente tabla: Tabla 10. Reglas de asociación compensadas con consecuente Tiempo b-Value Magnitud Confianza SopAC Lift Promedio (0.001,0.026) (-0.162,-0.013) (3.900,4.100) 0.800 0.009 13.177 0.835 (0.001,0.019) (-0.153,-0.026) (3.600,4.400) 0.778 0.008 12.811 0.818 (0.000,0.019) (-0.162,-0.018) (4.100,4.400) 0.750 0.003 12.354 0.797 (0.137,0.331) (-0.057,-0.011) (5.200,5.300) 1.000 0.001 16.472 0.735 (0.009,0.144) (-0.039,-0.011) (5.200,6.200) 1.000 0.001 16.472 0.735 (0.001,0.004) (-0.046,-0.024) (3.700,4.400) 1.000 0.003 16.472 0.735 (0.012,0.019) (-0.098,-0.027) (3.500,4.600) 1.000 0.001 16.472 0.735 (0.183,0.331) (-0.083,-0.005) (4.700,6.200) 1.000 0.001 16.472 0.735 (0.001,0.002) (-0.034,-0.014) (3.500,3.900) 1.000 0.002 16.472 0.735 (0.008,0.016) (-0.070,-0.053) (3.600,4.000) 1.000 0.001 16.472 0.735 Finalmente, para este caso, observamos una amplitud de los intervalos de los antecedentes muy grande. Como sucedía en el apartado 5.2.1, en el que se examinaba el mismo intervalo del consecuente, los valores de b son muy negativos. No obstante, si miramos la magnitud del terremoto anterior, vemos que no se puede sacar ninguna conclusión en firme ya que los intervalos de dicho atributo presentan valores muy diferentes por lo que no podríamos afirmar que este atributo fuera determinante. Algo similar ocurre con el incremento del tiempo, cuya amplitud de intervalo hace que sea difícil obtener alguna conclusión al respecto. Por tanto, podemos concluir que la estrategia óptima para analizar este intervalo es, precisamente, la que se llevó acabo en el apartado 5.2.1 ya que se optimizaba el parámetro más adecuado (lift) teniendo en cuenta los pocos registros existentes en la base de datos. No obstante, las reglas obtenidas siguen siendo de calidad si nos atenemos a los valores medios de los parámetros de evaluación ya que éstos no bajan de 0.735 en promedio (normalizado) para todas las reglas obtenidas. 51 52 6 Conclusiones. Se ha presentado en este trabajo una revisión exhaustiva de los trabajos relacionados con la extracción de reglas de asociación cuantitativas. Además, se ha propuesto un nuevo algoritmo de extracción de reglas de asociación de propósito general, basado en la obtención del k-ésimo mayor y k-ésimo menor elemento para cada uno de los atributos. Como caso de estudio, se ha utilizado una base de datos de terremotos ocurridos en la Península Ibérica. En concreto se han analizado las dos zonas con más actividad sísmica: Mar de Alborán y Azores-Falla de Gibraltar. Dada la naturaleza de los datos analizados, se han planteado dos estrategias diferentes. En primer lugar, nos interesamos por obtener reglas cuyo consecuente contuviera los terremotos de magnitud elevada. Dado a que son pocos dichos terremotos, nos interesamos por aquellas reglas que contuvieran un mayor lift y que, por tanto, no penalizaran el hecho de que se cubran pocas instancias de la base de datos. En segundo lugar, se han obtenido reglas generales, entendiendo por mejores aquellas cuyo promedio de parámetros de calidad obtenido fuera el más elevado. Como líneas de trabajo futuro se plantean diferentes estrategias: 1. Aplicación del algoritmo a nuevos conjuntos de datos. 2. Generación de nuevos indicadores sísmicos (o atributos) que puedan aportar mayor y mejor información acerca de la ocurrencia futura de terremotos. 3. Inclusión de un algoritmo genético como paso final para la obtención de reglas de asociación. 53 54 7 Bibliografía. [1] D. Pyle, «Data Preparation for Data Mining,» Order A Journal On The Theory Of Ordered Sets And Its Applications, vol. 17, nº 5 & 6, p. 375–381, 1999. [2] Jiawei Han and Micheline Kamber, Data Mining: Concepts and Techniques, Morgan Kaufmann, 2006. [3] R. Agrawal, T. Imielinski, and A. Swami, «Mining association rules between sets of items in large databases,» de Proceedings of the 1993 ACM SIGMOD International Conference on Management of Data, 1993. [4] G. Venturini, «Fast algorithms for mining association rules in large databases,» de Proceedings of the International Conference on Very Large Databases, 1994. [5] L. Geng and H.J. Hamilton, «Interestingness measures for data mining: A survey,» ACM Comput. Surv., vol. 38, nº 3, p. 9, 2006. [6] O. Berzal, I. Blanco, D. S´anchez, and M.A. Vila, Ios press measuring the accuracy and interest of association rules: A new framework, 2001. [7] S. Brin, R. Motwani, and C. Silverstein, «Beyond market baskets: generalizing association rules to correlations,» de Proceedings of the 1997 ACM SIGMOD international conference on Management of data, 1997. [8] S. Brin, R. Motwani, J. D. Ullman, and S. Tsur, «Dynamic itemset counting and implication rules for market basket data,» de Proc. of the ACM SIGMOD 1997, 1997. [9] M. Houtsma and A. Swami, «Set-Oriented Mining for Association Rules,» de In Proceedings of IEEE Data Engineering Conference, 1995. [10] Y. Yin, Z. Zhong, and Y. Wang, «Mining quantitative association rules by interval clustering,» Journal of Computational Information Systems, vol. 4, nº 2, p. 609–616, 2008. [11] J. Han, J. Pei, Y. Yin, and R. Mao, Mining frequent patterns without candidate generation: A frequent-pattern tree approach, 2004. [12] I. Mierswa, M.Wurst, R. Klinkenberg, M. Scholz, and T. Euler, «Yale: rapid prototyping for complex data mining tasks,» de KDD ’06: Proceedings of the 12th ACM SIGKDD international conference on Knowledge discovery and data mining, New York, NY, USA, 2006. [13] R. Srikant and R. Agrawal, «Mining quantitative association rules in large relational tables,» ACM SIGMOD Record, vol. 25, nº 2, pp. 1-12, 1996. 55 [14] L. Carro-Calvo, S. Salcedo-Sanz, R. Gil-Pita, A. Portilla-Figueras, and M. Rosa-Zurera, «An evolutive multiclass algorithm for automatic classification of high range resolution radar targets,» Integrated Computer-Aided Engineering, vol. 16, nº 1, pp. 51-60, 2009. [15] J. S. Aguilar-Ruiz, R. Gir´aldez, and J. C. Riquelme, «Natural encoding for evolutionary supervised learning,» IEEE Transactions on Evolutionary Computation, vol. 11, nº 4, p. 466–479, 2007. [16] H. Lee, E. Kim, and M. Park, «A genetic feature weighting scheme for pattern recognition,» Integrated Computer-Aided Engineering, vol. 12, nº 2, pp. 161-171, 2007. [17] L. Dridi, M. Parizeau, A. Mailhot, and J. P. Villeneuve, «Using evolutionary optimisation techniques for scheduling water pipe renewal considering a short planning horizon,» Computer-Aided Civil and Infrastructure Engineering, vol. 28, nº 8, p. 625–635, 2008. [18] E. I. Vlahogianni, M. G. Karlaftis, and J. C. Golias, «Spatio-temporal short-term urban traffic flow forecasting using genetically-optimized modular networks,» Computer-Aided Civil and Infrastructure Engineering, vol. 22, nº 5, p. 317–325, 2007. [19] S. Mathakari, P P. Gardoni, P P. Agarwal, A. Raich, and T. Haukaas, «Reliability based optimal design of electrical transmission towers using multi-objective genetic algorithms,» Computer-Aided Civil and Infrastructure Engineering, vol. 22, nº 4, pp. 282-292, 2007. [20] K. Sarma and H. Adeli, «Fuzzy genetic algorithm for optimization of steel structures,» Journal of Structural Engineering, vol. 126, nº 5, p. 596–604, 2000. [21] X. Jiang and H. Adeli, «Neuro-genetic algorithm for nonlinear active control of highrise buildings,» International Journal for Numerical Methods in Engineering, vol. 75, nº 8, pp. 770-786, 2008. [22] T. M. Cheng and R. Z. Yan, «Integrating messy genetic algorithms and simulation to optimize resource utilization,» Computer-Aided Civil and Infrastructure Engineering, vol. 24, nº 6, p. 401–415, 2009. [23] Y. Aumann and Y. Lindell, «A statistical theory for quantitative association rules,» Journal of Intelligent Information Systems, vol. 20, nº 3, p. 255–283, 2003. [24] M. Vannucci and V. Colla, «Meaningful discretization of continuous features for association rules mining by means of a som,» Proceedings of the European Symposium on Artificial Neural Networks, pp. 489-494, 2004. [25] J. Mata, J. L. ´Alvarez, and J. C. Riquelme, «Discovering numeric association rules via evolutionary algorithm,» Lecture Notes in Artificial Intelligence, vol. 2336, pp. 40-51, 2002. [26] Q. Tong, B. Yan, and Y. Zhou, «Mining quantitative association rules on overlapped intervals,» Lecture Notes in Artificial Intelligence, vol. 3584, pp. 43-50, 2005. 56 [27] D. Wan, Y. Zhang, and S. Li, «Discovery association rules in time series of hydrology,» Proceedings of the IEEE International Conference on Integration Technology, p. 653–657, 2007. [28] A. Orriols-Puig, J. Casillas, and E. Bernaó-Mansilla, «First approach toward on-line evolution of association rules with learning classifier systems,» de Proceedings of the 2008 GECCO Genetic and Evolutionary Computation Conference, 2008. [29] B. Alatas and E. Akin, «Rough particle swarm optimization and its applications in data mining,» Soft Computing, vol. 12, nº 12, pp. 1205-1218, 2008. [30] B. Alatas, E. Akin, and A. Karci, «MODENAR: Multi-objective differential evolution algorithm for mining numeric association rules,» Applied Soft Computing, vol. 8, nº 1, pp. 646-656, 2008. [31] X. Yan, C. Zhang, and S. Zhang, «Genetic algorithm-based strategy for identifying association rules without specifying actual minimum support,» Expert Systems with Applications: An International Journal, vol. 36, nº 2, p. 3066–3076, 2009. [32] E. Georgii, L. Richter, U. Rckert, and S. Kramer, «Analyzing microarray data using quantitative association rules,» BMC Bioinformatics, vol. 21, nº 2, pp. 123-129, 2005. [33] U. Ruckert, L. Richter, and S. Kramer, «Quantitative association rules based on halfspaces: An optimization approach,» de Proceedings of the IEEE International Conference on Data Mining, 2004. [34] N. Gupta, N. Mangal, K. Tiwari, and Pabitra Mitra, «Mining quantitative association rules in protein sequences,» Lecture Notes in Artificial Intelligence, vol. 3755, p. 273–281, 2006. [35] H. Nam, K. Lee, and D. Lee, «Identification of temporal association rules from timeseries microarray data sets,» BMC Bioinformatics, vol. 10, nº 3, pp. 1-9, 2009. [36] M. Kaya and R. Alhajj, «Genetic algorithm based framework for mining fuzzy association rules,» Fuzzy Sets and Systems, vol. 152, nº 3, p. 587–601, 2005. [37] S. Guha, R. Rastogiand, and K. Shim, «CURE: An efficient clustering algorithm for large databases,» de Proceedings of ACM SIGMOD International Conference on Management of Data, 1998. [38] M. Kaya and R. Alhajj, «Utilizing genetic algorithms to optimize membership functions for fuzzy weighted association rules mining,» Applied Intelligence, vol. 24, nº 1, p. 7–152, 2006. [39] J. Alcalá-Fdez, R. Alcalá, M. J. Gacto, and F. Herrera, «Learning the membership function contexts forming fuzzy association rules by using genetic algorithms,» Fuzzy Sets and Systems, vol. 160, nº 7, p. 905–921, 2009. 57 [40] Y. Aumann and Y. Lindell, «A statistical theory for quantitative association rules,» Journal of Intelligent Information Systems, vol. 20, nº 3, p. 255–283, 2003. [41] R. Bellazzi, C. Larizza, P. Magni, and R. Bellazzi, «Temporal data mining for the quality assessment of hemodialysis services,» Artificial Intelligence in Medicine, vol. 34, pp. 25-29, 2005. [42] E. Winarko and J. F. Roddick, «ARMADA – An algorithm for discovering richer relative temporal association rules from interval-based data,» Data and Knowledge Engineering, vol. 63, pp. 76-90, 2007. [43] M.Y. Lin and S.Y. Lee, «Fast discovery of sequential patterns by memory indexing,» de Proceedings of the 4th International Conference on Data Warehousing and Knowledge Discovery,, 2002. [44] Y. P. Huang, L. J. Kao, and F. E. Sandnes, «Efficient mining of salinity and temperature association rules from ARGO data,» Expert Systems with Applications, vol. 35, pp. 59-68, 2008. [45] J. Pei, J. W. Han, B. Mortazavi-Asl, H. Pinto, Q. Chen, U. Dayal, and M. C. Hsu, «Prefixspan: Mining sequential patterns efficiently by prefix-projected pattern growth,» de Proceedings of IEEE Conference on Data Engineering, 2001. [46] A.K.H. Tung, J. Han H. Lu, and L. Feng, «Efficient mining of intertransaction association rules,» IEEE Transactions on Knowledge and Data Engineering, vol. 15, nº 1, pp. 43-56, 2003. [47] F. Martíınez-Álvarez, A. Troncoso, J. C. Riquelme, and J. S. Aguilar, «Energy time series forecasting based on pattern sequence similarity,» IEEE Transactions on Knowledge and Data Engineering. [48] V. Nikolaidou and P. A. Mitkas, «A sequence mining method to predict the bidding strategy of trading agents,» Lecture Notes in Computer Science, vol. 5680, pp. 139-151, 2009. [49] M. S. Khan, F. Coenen, D. Reid, R. Patel, and L. Archer, «A sliding windows based dual support framework for discovering emerging trends from temporal data,» Research and Development in Intelligent Systems, vol. 2, pp. 35-48, 2010. [50] A. Morales, F. Martínez-Álvarez, A. Troncoso, J. L. Justo, C. Rubio-Escudero, «Pattern recognition to forecast seismic time series,» Expert Systems with Applications, vol. 37, nº 12, pp. 8333-8342, 2010. [51] J. Alcalá-Fdez, L. Sánchez, S. Garía, M.J. del Jesus, S. Ventura, J.M. Garrell, J. Otero, C. Romero, J. Bacardit, V.M. Rivas, J.C. Fernández, and F.Herrera., «Keel: a software tool to assess evolutionary algorithms for data mining problems,» Soft Computing, vol. 13, nº 3, 58 p. 307–318, 2008. [52] E.H. Shortliffe and B. Buchanan, «A model of inexact reasoning in medicine,» Mathematical Biosciences, nº 23, p. 351–379, 1975. [53] M. J. del Jesús, P. González, F. Herrera, and M. Mesonero, «Evolutionary fuzzy rule induction process for subgroup discovery: A case study in marketing,» IEEE Transactionson Fuzzy Systems, vol. 15, nº 4, p. 578–592, 2007. [54] B. Kavsek and M. Jermol, «APRIORI-SD : adapting asociation rule learning to subgroup discovery,» Applied Artificial Intelligence, vol. 20, nº 7, pp. 543-583, 2006. [55] N. Lavrac, B. Kavsek, P. Flach, and L. Todorovski, «Subgroup discovery with CN2-SD,» Journal of Machine Learning Research, vol. 5, pp. 153-188, 2004. [56] E., G. Ibarra-Berastegi, and I. Madariagac, «Regression and multilayer perceptronbased models to forecast hourly o3 and no2 levels in the Bilbao area,» Environmental Modelling and Software, vol. 21, pp. 430-446, 2006. [57] A. Elkamel, S. Abdul-Wahab, W. Bouhamra, and E. Alper, «Measurement and prediction of ozone levels around a heavily industrialized area: a neural network approach,» Advances in Environmental Research, vol. 5, pp. 47-59, 2001. [58] J. A. Adame-Carnero, J. P. Bolívar, and B. A. de la Morena, «Surface ozone measurements in the southwest of the Iberian Peninsula,» Environmental Science and Pollution Research. 59