Aspectos generales sobre la Minería de Datos Introducción En la actualidad existe un gran cúmulo de información generada por el proceso investigativo y que se encuentra en diversas fuentes y formatos. Sin embrago, se desconoce con qué finalidad se quiere generar esa información y cuál es el propósito de aprovechar ese cúmulo informativo. Son muchos los motivos que llevan a generar información que puede ayudar a controlar, optimizar, administrar, examinar, investigar, planificar, predecir, someter, negociar con el objetivo de mejorar la toma de decisiones en diferentes ámbitos. En los últimos años, el desarrollo tecnológico ha crecido a niveles exponenciales tanto en el área de cómputo, como en la de transmisión de datos, lo que ha sido posible que se gestione el manejo y almacenamiento de la información, en tal sentido existen cuatro factores importantes que llevan a este suceso: 1. El abaratamiento de los sistemas de almacenamiento tanto temporal como permanente. 2. El incremento de las velocidades de cómputo en los procesadores. 3. Las mejoras en la confiabilidad y aumento de la velocidad en la transmisión de datos. 4. El desarrollo de sistemas administradores de bases de datos más poderosos. Estas ventajas han conllevado a abusar del almacenamiento de la información en las bases de datos, lo que trae consigo la necesidad de disponer de tecnologías que ayuden a agilizar los procesos de búsqueda y a comprender su contenido. Entre las tecnologías que se encargan de este estudio se encuentra la Minería de Datos (Data Mining). La Minería de Datos utiliza los datos como la materia bruta, y en el momento que el usuario les atribuye algún significado especial a los datos pasan a convertirse en información. Una vez que el especialista elabora o encuentra un modelo capaz de utilizar esta información e interpretar los resultados, se obtiene conocimiento. De forma general, la Minería de Datos trabaja buscando patrones, comportamientos, agrupaciones, secuencias, tendencias o asociaciones que puedan generar algún modelo (predictivo o descriptivo) que permita comprender mejor el dominio y proyectar futuras investigaciones. Minería de Datos: conceptos e historia El término Minería de Datos es una etapa dentro de un proceso mayor llamado extracción de conocimiento en bases de datos (Knowledge Discovery in Databases o KDD) El KDD es un proceso iterativo e interactivo. Es 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. Es 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. El proceso de KDD se organiza entorno a cinco fases como se ilustra en la Figura1. En la fase de integración y recopilación de datos se determinan las fuentes de información que pueden ser útiles y dónde conseguirlas. A continuación, se transforman todos los datos a un formato común, frecuentemente mediante un almacén de datos que consiga unificar de manera operativa toda la información recogida, detectando y resolviendo las inconsistencias. Este almacén de datos facilita enormemente la "navegación" y visualización previa de los datos, para discernir qué aspectos puede interesar que sean estudiados. Dado que los datos provienen de diferentes fuentes, pueden contener valores erróneos o faltantes. Estas situaciones se tratan en la fase de selección, limpieza y transformación, en la que se eliminan o corrigen los datos incorrectos y se decide la estrategia a seguir con los datos incompletos. Además, se proyectan los datos para considerar únicamente aquellas variables o atributos que van a ser relevantes, con el objetivo de hacer más fácil la tarea propia de minería y para que los resultados de la misma sean más útiles. La selección incluye tanto una criba o fusión horizontal (filas / registros) corno vertical (columnas / atributos). Las dos primeras fases se suelen englobar bajo el nombre de "preparación de datos". En la fase de Minería de Datos, se decide cuál es la tarea a realizar (clasificar, agrupar, etc.) y se elige el método que se va a utilizar. En la fase de evaluación e interpretación se evalúan los patrones y se analizan por los expertos, y si es necesario se vuelve a las fases anteriores para una nueva iteración. Esto incluye resolver posibles conflictos con el conocimiento que se disponía anteriormente. Finalmente, en la fase de difusión se hace uso del nuevo conocimiento y se hace partícipe de él a todos los posibles usuarios. Para cada una de estas fases se emplean distintas técnicas de las diferentes disciplinas relacionadas Figura 1. Fases del proceso de descubrimiento de conocimiento en bases de datos, KDD. Lo que en verdad hace el Data Mining es reunir las ventajas de varias áreas como la Estadística, la Inteligencia Artificial, la Computación Gráfica, las Bases de Datos y el Procesamiento Masivo, principalmente usando como materia prima las bases de datos. Una definición tradicional es la siguiente: "Un proceso no trivial de identificación válida, novedosa, potencialmente útil y entendible de patrones comprensibles que se encuentran ocultos en los datos" (Fayyad y otros, 1996). La idea de Data Mining no es nueva. Ya desde los años sesenta los estadísticos manejaban términos como Data Fishing, Data Mining o Data Archaeology con la idea de encontrar correlaciones sin una hipótesis previa en bases de datos con ruido. A principios de los años ochenta, Rakesh Agrawal, Gio Wiederhold, Robert Blum y Gregory Piatetsky-Shapiro, entre otros, empezaron a consolidar los términos de Data Mining y KDD. A finales de los años ochenta sólo existían un par de empresas dedicadas a esta tecnología; en 2002 existen más de 100 empresas en el mundo que ofrecen alrededor de 300 soluciones. Las listas de discusión sobre este tema las forman investigadores de más de ochenta países. Esta tecnología ha sido un buen punto de encuentro entre personas pertenecientes al ámbito académico y al de los negocios. Minería de Datos: tareas Dentro de la Minería de Datos hemos de distinguir tipos de tareas, cada una de las cuales se pueden considerar 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. Las distintas tareas pueden ser predictivas o descriptivas. Entre las tareas predictivas encontramos la clasificación y la regresión. Entre las tareas descriptivas están el agrupamiento (clustering), las reglas de asociación, las reglas de asociación secuenciales y las correlaciones. La clasificación es quizás 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 denominado 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). La regresión es también una tarea predictiva que consiste en aprender una función real que asigna a cada instancia un valor real. Ésta es la principal diferencia respecto a la clasificación; el valor a predecir es numérico. El objetivo en este caso es minimizar el error (generalmente el error cuadrático medio) entre el valor predicho y el valor real. El agrupamiento (clustering) es la tarea descriptiva por excelencia y consiste en obtener grupos a partir de los datos. Hablamos de grupos y no de clases, porque, a diferencia de la clasificación, en lugar de analizar datos etiquetados con una clase, los analiza para generar esta etiqueta. Los datos son agrupados basándose en el principio de maximizar la similitud entre los elementos de un grupo minimizando la similitud entre grupos distintos. Es decir, se forman grupos tales que los objetos de un mismo grupo son muy similares entre sí y, al mismo tiempo, son muy diferentes a los objetos de otro grupo. Al agrupamiento también se le suele llamar segmentación, ya que parte o segmenta los datos en grupos que pueden ser o no disjuntos. Las correlaciones son una tarea descriptiva que se usa para examinar el grado de similitud de los valores de dos variables numéricas. Una fórmula estándar para medir la correlación lineal es el coeficiente de correlación r, el cual es un valor real comprendido entre -1 y 1. Si r es 1 las variables están perfectamente correlacionadas, si r es -1 las variables están perfectamente correlacionadas negativamente. Esto quiere decir, que cuando r es positivo, las variables tienen un comportamiento similar (ambas crecen o decrecen al mismo tiempo) y cuando r es negativo si una variable crece la otra decrece. En el caso en que r es 0 no hay correlación. Las reglas de asociación son también una tarea descriptiva, muy similar a las correlaciones, que tiene como objetivo identificar relaciones no explícitas entre atributos categóricos. Pueden ser de muchas formas, aunque la formulación más común es del estilo ‟si el atributo X toma el valor d entonces el atributo Y toma el valor b”. Un caso especial de reglas de asociación, recibe el nombre de reglas de asociación secuenciales, y se usan para determinar patrones secuenciales en los datos. Estos patrones se basan en secuencias temporales de acciones y difieren de las reglas de asociación en que las relaciones entre los datos se basan en el tiempo (Orallo, 2004) Minería de Datos: técnicas Cada una de las tareas anteriores, como cualquier problema, requiere métodos, técnicas o algoritmos para resolverlas. Lógicamente, una tarea puede tener muchos métodos diferentes para resolverla, y se tiene que el mismo método, o al menos el mismo tipo de técnica, puede resolver un gran número de tareas. Entre las técnicas existentes se encuentran: Técnicas algebraicas y estadísticas: se basan, generalmente, en expresar modelos y patrones mediante fórmulas algebraicas, funciones lineales, funciones no lineales, distribuciones o valores agregados estadísticos tales como medias, varianzas, correlaciones, etc. Frecuentemente, estas técnicas cuando obtienen un patrón lo hacen a partir de un modelo ya predeterminado, del cual se estiman unos coeficientes o parámetros, de ahí el nombre de técnicas paramétricas. Algunos de los algoritmos más conocidos dentro de este grupo de técnicas son la regresión lineal (global o local), la regresión logarítmica y la regresión logística. Los discriminantes lineales y no lineales, basados en funciones predefinidas, es decir discriminantes paramétricos, entran dentro de esta categoría. No obstante, aunque el término "no paramétrico" se utiliza para englobar gran parte de técnicas provenientes del aprendizaje automático, como son las redes neuronales, también existen muchas técnicas de modelización estadística no paramétrica. Técnicas bayesianas: se basan en estimar la probabilidad de pertenencia a una clase o grupo, mediante la estimación de las probabilidades condicionales inversas o a priori utilizando para ello el teorema de Bayes. Algunos algoritmos muy populares son el Clasificador Bayesiano Naive y los métodos basados en máxima verisimilitud. Las redes bayesianas generalizan las topologías de las interacciones probabilísticas entre variables y permiten representar gráficamente dichas interacciones. Técnicas basadas en conteos de frecuencias y tablas de contingencia: estas técnicas se basan en contar la frecuencia en la que dos o más sucesos se presenten conjuntamente. Cuando el conjunto de sucesos posibles es muy grande, existen algoritmos que van comenzando por pares de sucesos e incrementando los conjuntos sólo en aquellos casos que las frecuencias conjuntas superan un cierto umbral. Ejemplos de estos algoritmos son el algoritmo ‟a priori” y similares. Técnicas basadas en árboles de decisión y sistemas de aprendizaje de reglas: son técnicas que, además de su representación en forma de reglas, se basan en dos tipos de algoritmos: los algoritmos denominados ‟divide y vencerás”, como el ID3/C4.5 o el CART, y los algoritmos denominados ‟separa y vencerás”, como el CN2. Técnicas relacionales, declarativas y estructurales: la característica principal de este conjunto de técnicas es que representan los modelos mediante lenguajes declarativos, como los lenguajes lógicos, funcionales o lógico-funcionales. Las técnicas de ILP (programación lógica inductiva) son las más representativas y las que han dado nombre a un conjunto de técnicas denominadas minería de datos relacional. Técnicas basadas en redes neuronales artificiales: se trata de técnicas que aprenden un modelo mediante el entrenamiento de los ‟pesos” que conectan un conjunto de nodos o ‟neuronas”. La topología de la red y los ‟pesos” de las conexiones determinan el patrón aprendido. Existen innumerables variantes de organización: perceptrón simple, redes multicapa, redes de base radial, redes de Kohonen, etc., con no menos algoritmos diferentes para cada organización, el más conocido es el de retropropagación (backpropagation). Técnicas basadas en núcleo y máquinas de soporte vectorial: se trata de técnicas que intentan maximizar el margen entre los grupos o las clases formadas. Para ello se basan en unas transformaciones que pueden aumentar la dimensionalidad. Estas transformaciones se llaman núcleos (kernels). Existen muchísimas variantes, dependiendo del núcleo utilizado y de la manera de trabajar con el margen. Técnicas estocásticas y difusas: bajo este paraguas se incluyen la mayoría de las técnicas que, junto a las redes neuronales, forman lo que se denomina computación flexible. Son técnicas en las que o bien los componentes aleatorios son fundamentales, como el simulated annealing, los métodos evolutivos y genéticos, o bien al utilizar funciones de pertenencia difusas lfuzzy). Técnicas basadas en casos, en densidad o distancia: son métodos que se basan en distancias al resto de elementos, ya sea directamente, como los vecinos más próximos (los casos más similares), de una manera más sofisticada, mediante la estimación de funciones de densidad. Además de los vecinos más próximos, algunos algoritmos muy conocidos son los jerárquicos, como Two-step o COBWEB, y los no jerárquicos, como K medias. La tabla 1 muestra la correspondencia entre tareas y técnicas, la cual es muy variada (Orallo, 2004). Algunas tareas se pueden resolver por muy diversas técnicas y algunas técnicas se pueden aplicar para tres o incluso cuatro tareas. Esta variedad es una de las razones por la que es necesario conocer las capacidades de cada técnica, los ámbitos donde suele funcionar mejor, la eficiencia, la robustez, etc., en definitiva, las características funcionales de cada técnica respecto a las demás. Tabla 1 Correspondencia entre tareas y técnicas Nombre de la Predictivo técnica Clasifica Descriptivo Regresión ción Redes Neuronales Árboles de decisión Agrupamien Reglas de Correlaciones/Factorizaciones to asociación ID3, C4.5, C5.0 Árboles de decisión CART Otros árboles de decisión Redes de Kohonen Regresión lineal y logarítmica Regresión logística Kmeans A priori Naive Bayes Vecinos más próximos Análisis factorial y de componentes principales Twostep, Cobweb Algoritmos genéticos y evolutivos Máquinas de vectores de soporte CN2 Análisis discriminante multivariante Minería de Datos: aplicaciones La integración de las técnicas de Minería de Datos en las actividades del día a día se está convirtiendo en algo habitual. Los negocios de la distribución y la publicidad dirigida han sido tradicionalmente las áreas en las que más se han empleado los métodos de minería, ya que han permitido reducir costes o aumentar la receptividad de ofertas (Riquelme, 2006). Pero éstas no son las únicas, existen numerosas áreas donde la Minería de Datos se puede aplicar, prácticamente en todas las actividades humanas que generen datos: Aplicaciones financieras y bancarias: Obtención de patrones de uso fraudulento de tarjetas de crédito Determinación del gasto en tarjeta de crédito por grupos Cálculo de correlaciones entre indicadores financieros Identificación de reglas de mercado de valores a partir de elementos históricos Análisis de riesgos en créditos Análisis de mercado, distribución y, en general, comercio: Análisis de la cesta de la compra (compras conjuntas, secuenciales, ventas cruzadas, señuelos, etc.) Evaluación de campañas publicitarias Análisis de la fidelidad de los clientes Reducción de fuga Segmentación de clientes Estimación de stocks, de costes, de ventas, etc. Seguridad: Reconocimiento facial Identificaciones biométricas Accesos a redes no permitidas Identificación de patrones de comportamiento para clientes con riesgo Educación: Selección o captación de estudiantes Detección de abandonos y de fracaso Estimación del tiempo de estancia en la institución Procesos industriales: Extracción de modelos sobre comportamiento de compuestos Detección de piezas con trabas Modelos de calidad Predicción de fallos y accidentes Estimación de composiciones óptimas en mezclas Extracción de modelos de coste Extracción de modelos de producción Medicina: Identificación de patologías Diagnóstico de enfermedades Detección de pacientes con riesgo de sufrir una patología concreta Gestión hospitalaria y asistencial Predicciones temporales de los centros asistenciales para el mejor uso de recursos, consultas, salas y habitaciones Recomendación priorizada de fármacos para una misma patología Biología, bioingeniería y otras ciencias: Análisis de secuencias de genes Análisis de secuencias de proteínas Predecir si un compuesto químico causa cáncer Clasificación de cuerpos celestes Predicción de recorrido y distribución de inundaciones Modelos de calidad de aguas, indicadores ecológicos Recuperación de información no numérica: Minería de texto Minería web Búsqueda e identificación de imagen, video, voz y texto de bases de datos multimedia Sector Agropecuario: Control climático en invernaderos y silos de almacenamiento Administración y mantenimiento de la maquinaria agrícola Determinación de estrés hídrico de un cultivo Control de malezas, plagas y enfermedades de los cultivos Diagnóstico y aplicación de fertilizantes Clasificación de cultivos Diagnóstico de enfermedades en producciones pecuarias Control de procesos Telecomunicaciones: Establecimiento de patrones de llamadas Modelos de carga en redes Detección de fraude Otras áreas: Correo electrónico y agendas personales: clasificación y distribución automática de correo, detección de correo spam, gestión de avisos, análisis del empleo del tiempo Recursos Humanos: selección de empleados Web: análisis del comportamiento de los usuarios, detección de fraude en el comercio electrónico, análisis de los logs de un servidor web Turismo: determinar las características socio-económicas de los turistas en un determinado destino o paquete turístico, identificar patrones de reservas, etc. Tráfico: modelos de tráfico a partir de fuentes diversas: cámaras, GPS… Hacienda: detección de evasión fiscal Policiales: identificación de posibles terroristas en un aeropuerto Deportes: estudio de la influencia de jugadores y de cambios. Planificación de eventos Política: diseño de campañas políticas, estudios de tendencias de grupos, etc. Ciencias Sociales: Estudio de los flujos de la opinión pública (Orallo, 2004)