Una vez los datos están recopilados, integrados y limpios, todavía no estamos listos (en muchos casos) para realizar una tarea de minería de datos. Es necesario, además, realizar un reconocimiento o análisis exploratorio de los datos con el objetivo de conocerlos mejor de cara a la tarea de minería de datos. Incluso esta fase es imprescindible cuando se realiza minería de datos" abierta", ya que tenemos todo el volumen de datos pero hemos de determinar los datos a seleccionar y las tareas a realizar sobre esos datos.
Existen un conjunto de técnicas diversas: algunas técnicas simples del análisis exploratorio de datos, técnicas de visualización previa, de agrupamiento exploratorio, técnicas de selección, ya sea horizontalmente, eliminando filas (muestreo), o verticalmente, eliminando atributos, interfaces gráficas y técnicas de consulta y agregación (ya sean más tradicionales al estilo de SQL, herramientas OLAP o incluso lenguajes de consulta para minería de datos).
La salida o resultado de las técnicas presentadas en este capítulo ya es una "vista minable con tarea asignada", o dicho de otra manera, una vista minable tipada (entradas, salidas) con instrucciones sobre qué datos trabajar, qué tarea realizar y de qué manera obtener el conocimiento.
Reconocimiento del dominio y de los usuarios.
Para conocer qué se puede hacer con unos ciertos datos es necesario conocer el dominio y los usuarios.
El procedimiento más similar a este reconocimiento para la minería de datos es el establecimiento de requerimientos realizado por un analista de software. A diferencia del caso del software, en las entrevistas (o cuestionarios) no buscaremos aquí casos de uso y escenarios de las operaciones mecánicas clásicas de los sistemas software, sino que buscaremos los casos de usos y escenarios de las tomas de decisión.
Para ello, realizaremos preguntas del estilo: ¿qué aspectos son cruciales en su negocio? ¿Qué reglas o modelos de decisión están utilizando? ¿Se pueden mejorar dichas reglas? ¿Qué base tienen dichas reglas? ¿Existen decisiones que se toman de una manera arbitraria o basándose en reflexiones personales no explícitas? ¿Existe documentación sobre decisiones anteriores? ¿Quiénes toman las decisiones? ¿Qué decisiones son críticas? ¿Los modelos deben ser comprendidos y validados por expertos? ¿Qué otros requerimientos exigiríamos a los patrones extraídos? ¿Qué conocimiento previo suele utilizar para apoyarse en sus decisiones? ¿Utiliza otras fuentes de datos externas para fundamentarse en sus decisiones? Y un largo etcétera de preguntas de este estilo. Algunas de estas cuestiones también son útiles y se pueden realizar a la hora de construir un almacén de datos o en el momento de integración. Este reconocimiento se puede establecer como una fase previa a la minería de datos, en la que se establecen los requerimientos y objetivos de negocio.
El resultado de este "reconocimiento" puede resumirse en una documentación u organizarse de una manera esquemática, estableciendo prioridades de análisis, destacando aquellas reglas de decisión importantes, que pueden mejorarse de manera significativa y para las cuales parece que disponemos de datos.
Reconocimiento y exploración de los datos.
Además del reconocimiento del dominio, debemos reconocer los datos. Para ello, lógicamente debemos conocer lo que significan y esto sólo es posible si quien lo realiza conoce el dominio o los datos (ya sea porque son sus propios datos y dominio o porque ha hecho el reconocimiento del dominio). El reconocimiento de los datos por tanto viene guiado por el interés y las necesidades establecidas en el reconocimiento de dominio. Sin éste, no se puede saber qué datos son relevantes ni qué tareas pueden ser útiles.
El objetivo de la exploración para la minería de datos es obtener una vista minable, con una tarea asignada. Para ello, se pueden utilizar distintas técnicas para obtener o refinar dicha vista: visualización, descripción, generalización, agregación y selección. En los puntos siguientes veremos estas técnicas. Todas ellas requieren, como hemos dicho anteriormente, conocer el dominio y el significado de los datos.
Exploración mediante visualización.
En este apartado veremos algunas gráficas más con un objetivo diferente, intentar sugerir tareas de minería de datos o patrones que puedan extraerse. Las gráficas que vamos a ver en este apartado se pueden caracterizar por dos aspectos: o bien son interactivas y permiten una exploración activa, o bien son multidimensionales, con lo que permiten observar muchos atributos a la vez.
Existen otros tipos de visualizaciones más gráficas donde podemos apoyamos para la preparación de datos. En general, las herramientas de minería de datos o estadísticas no nos van a sugerir qué gráfica utilizar, con lo que en general se requerirá de cierta experiencia y conocimiento de la herramienta para seleccionar qué gráfico nos interesa utilizar entre las decenas de gráficas que proporcionan los sistemas actuales.
Visualización multidimensional.
La representación gráfica debe limitarse a las pantallas o al papel, que son bidimensionales. Sin embargo, en muchas situaciones tenemos más de tres dimensiones, lo que plantea grandes problemas de cara a la visualización.
La técnica de visualización de datos multidimensionales más conocida es la visualización de coordenadas paralelas. Se mapea el espacio k-dimensional en dos dimensiones mediante el uso de k ejes de ordenadas (escalados linealmente) por uno de abscisas. Cada punto en el espacio k-dimensional se hace corresponder con una línea poligonal (polígono abierto), donde cada vértice de la línea poligonal intersecta los k ejes en el valor para la dimensión.
Una variante del caso anterior cuando hay pocos ejemplos es la representación radial o circular. Frecuentemente, en vez de mostrar todos los valores en la radial, mostramos uno a uno, con lo que tenemos diferentes figuras para comparar los ejemplos.
Este tipo de representaciones con distintas formas que se da a diferentes objetos puede llevarse más allá mediante el uso de representaciones icónicas, en las cuales se utilizan figuras fáciles de reconocer por seres humanos (animales, caras, casas, etc.) y cada dimensión representa una característica de la figura. Otra de las ventajas de las representaciones icónicas frente a las radiales es que se pueden combinar más convenientemente valores discretos y continuos. Por ejemplo tener o no tener bigote puede utilizarse para un atributo binario, podemos representar un atributo con cuatro valores con cuatro tipos de nariz, etc.
Sumarización, descripción, generalización y pivotamiento.
La construcción de la vista minable es un proceso iterativo que pasa por conocer y visualizar los datos, combinados de diferentes maneras. Para esta combinación podemos utilizar operadores de consultas de bases de datos y operadores OLAP.
Una pregunta que aparece generalmente en el entorno de la minería de datos es la siguiente:"si ya he decidido qué tablas y atributos son relevantes, ¿por qué debo construir una única tabla derivada, denominada vista minable? ¿No es suficiente con marcar dichos atributos y dejar a la herramienta de minería de datos que trabaje sobre las base de datos?". Existen dos razones fundamentales para contestar a esta pregunta. La primera es que dadas varias tablas, incluso aunque tenga claves ajenas definidas, existen muchas maneras de concatenarlas, es decir, de combinar la información que contienen. Por tanto, es más difícil definir tareas concretas si no se clarifica exactamente la información sobre la que se van a definir. La segunda razón es quizás más importante: la mayoría de métodos de minería de datos sólo tratan con una única tabla.
Por tanto, debemos definir una consulta o vista minable. Para ello, las operaciones necesarias son aquellas de un lenguaje relacional (como por ejemplo el SQL), concatenaciones (joinsl0), selecciones, proyecciones, agrupamientos/agregaciones, etc.
Este proceso generalmente obtiene vistas desnormalizadas. Este tipo de desnormalizaciones contienen redundancia y, por tanto, patrones. Por tanto, hay que ser consciente de ellos, porque si incluyéramos todos los atributos para reglas de asociación, por ejemplo, tendremos patrones redescubiertos del estilo de dependencias funcionales como "ciudad ~ país" o, en el ejemplo anterior "día.nombre --> laborable".
Sumarización.
La sumarización o agregación muestra los datos de una manera más resumida, permitiendo, precisamente, calcular valores agregados, que no son los datos directos registrados, sino datos derivados de ellos. Se puede considerar, en cierto modo, una generalización de los datos y, por tanto, suele facilitar el aprendizaje. Pero no es sólo una cuestión de eficiencia, sino, muchas veces, una necesidad. En la mayoría de eventos físicos, cuando más se detallan los datos menos patrones suelen encontrarse.Además, de la agregación aparecen nuevos atributos, que pueden ser mucho más significativos que los atributos más detallados. Por ejemplo, podemos tener los atributos típicos de los clientes (edad, estado civil, dirección...). En otras tablas podemos tener información sobre los productos que han comprado anteriormente y cuándo. Nos puede interesar generar nuevos atributos como por ejemplo "gasto medio por mes", "número de productos comprados por año", etc. Estos atributos son, en realidad, nuevos atributos por agregación y sumarización (jeatureaggregation).
La sumarización se puede utilizar no sólo para construir la vista minable directamente, sino para realizar un análisis exploratorio, similar, en cierto modo, a las gráficas del punto anterior. Una aplicación muy práctica de la sumarización es la comparación o discriminación de clases. Consiste en sumarizar para dos o más clases, es decir agrupar, y ver las características para las submuestras formadas. Las clases pueden ser las que finalmente van a servir para una tarea de clasificación o puede ser cualquier atributo nominal (o numérico separado por intervalos) elegido para realizar el "contraste".
Generalización y descripción.
La generalización se puede realizar fundamentalmente mediante agregación por dimensiones, como se ha visto en el apartado anterior (mediante herramientas OLAP u otros medios más tradicionales) o se puede realizar mediante lo que a veces se llama "inducción orientada al atributo". Este tipo de generalización se denomina a veces "descripción de conceptos" (concept description) e incluye: generalización multinivel, sumarización, caracterización y comparación (como la vista en el punto anterior). Es un tipo de técnicas de consulta explorativas que pueden considerarse como un paso previo a la minería de datos (ésta es la perspectiva tomada en este libro) o se puede considerar como un tipo muy básico de minería de datos descripcional.
Este tipo de generalización multinivel o descripción de conceptos se basa fundamentalmente en la definición de niveles conceptuales o jerarquías. Éstas se pueden definir para los valores, más que para los atributos, y de manera más flexible que las jerarquías de dimensiones de los datamarts, generalizando a través de los atributos descriptivos de las dimensiones.
Este tipo de jerarquías de valor se pueden definir, además de las jerarquías de la dimensión. Esto permite que algunas operaciones se puedan automatizar, en especial para los atributos nominales:
- Si un atributo tiene muchos valores y se puede generalizar, considerar las posibles generalizaciones. Por ejemplo, si tenemos las fechas (muy numerosas lógicamente), pero podemos generalizar en "días festivos", "días laborables", o en meses del año, etc., se debe considerar de estas generalizaciones cuál se ajusta más a la tarea a realizar.
- Si un atributo tiene muchos valores y no se puede generalizar, considerar borrar el atributo. Por ejemplo, los números de teléfono, si no tienen generalización, tal vez sea conveniente borrados.
- Si un atributo tiene pocos valores, dejar el atributo intacto. Por ejemplo, el estado civil de un cliente puede no requerir generalización. Si después de las generalizaciones existen atributos con muchos valores que ya no se pueden generalizar, considerar borrar el atributo.
- Para los atributos numéricos se puede utilizar generalización por intervalos, en varias escalas significativas.
La definición de estas jerarquías requiere, en muchos casos, obtener datos externos. Por ejemplo, buscar el calendario de festividades de los años de análisis (para saber si las fechas eran festivas o no), obtener datos del nivel de ventas del mismo ramo para saber si era año de recesión o año de bonanza, etc. Este proceso de creación de jerarquías ayudado por información externa se llama enriquecimiento (enrichmento enhancement).
Pivotamiento.
Una operación muy usual a la hora de preparar la vista minable se conoce como pivotamiento y forma parte de los operadores OLAP. La operación de pivotamiento cambia filas por columnas y, por tanto, realiza un cambio verdaderamente radical para una representación basada en pares "atributo-valor".
Selección de datos.
La selección de datos es algo más que decidir qué tablas (o archivos, en su caso) se van a necesitar para la minería de datos y de qué manera concatenarlas. Esto podría estar ya decidido, pero todavía no sabemos qué atributos/variables necesitamos y cuántas instancias (ejemplos) van a ser necesarias. Dicho de otra manera, puede ser que no todas las columnas, ni todas las filas sean necesarias. El problema existente es precisamente que si seleccionamos como "vista minable" todo aquello que pueda ser relevante podemos acabar con una vista minable de cientos de columnas/atributos y millones de filas/registros.
La selección de datos no tiene únicamente como objetivo la reducción del tamaño para obtener una minería de datos más rápida sino que, en muchos casos, puede permitir mejorar el resultado.
El proceso de selección de datos muchas veces se engloba dentro de un concepto más amplio, denominado reducción de datos (data reduction), aunque este término también puede incluir la agregación (por ejemplo si pasamos de instancias de cada día a instancias agregadas mensualmente), la generalización (por ejemplo si reemplazamos el atributo ciudad por región, siguiendo por ejemplo la jerarquía de alguna dimensión), o incluso la compresión de datos (por ejemplo eliminando datos redundantes).
En general, cuando tratamos de datos del estilo atributo-valor (es decir, una tabla), hay dos tipos de selección aplicables: selección horizontal (muestreo), donde se eliminan algunas filas (individuos) y selección vertical (reducción de dimensionalidad), donde se eliminan características de todos los individuos.
Técnicas de muestreo.
La manera más directa de reducir el tamaño de una población o conjuntos de individuos es realizar el muestreo. La gran mayoría de medidas y técnicas estadísticas y de sus aplicaciones, se basan en el concepto de muestra, es decir, no se trabaja sobre toda la población sino sobre un subconjunto de la misma. Un ejemplo diario es la realización de encuestas.
Existen varios tipos de muestreo: aleatorio, estratificado, por grupos o exhaustivo.
- Muestreo Aleatorio Simple. La premisa de este muestreo es que cualquier instancia tiene la misma probabilidad de ser extraída en la muestra. Puede ser con o sin reemplazamiento. La manera más sencilla de realizar un muestreo sin reemplazamiento de este estilo es asignar un número aleatorio a cada instancia y después ordenarlos por este valor. Se seleccionan los n primeros y tenemos una muestra de n instancias sin reemplazamiento. Para realizar un muestreo con reemplazamiento, una manera sencilla es, dado un total de m instancias, generar aleatoriamente un valor i entre 1 y m. Con este valor i se elige la i-ésima instancia del conjunto. Esta operación se repite hasta tener n valores. Lógicamente, existen maneras más efectivas de realizar ambos tipos de muestreo cuando no se desea ordenar una tabla grande ni se desea realizar n barridos de la misma tabla.
- Muestreo Aleatorio Estratificado. El objetivo de este muestreo es obtener una muestra balanceada con suficientes elementos de todos los estratos, o grupos. Lógicamente, para poder hacerlo es necesario conocer los estratos o grupos de interés. Esto generalmente ocurre con problemas de clasificación, donde estos estratos son precisamente las clases existentes, y puede ser que se tengan pocas instancias de unas clases o muchas instancias de otras. No obstante, se puede plantear realizar un agrupamiento previo al muestreo para descubrir los estratos. Las ventajas del muestreo estratificado no es sólo que se cubren suficientes estancias de todos los estratos, sino que además es estadísticamente aconsejable, ya que los elementos del mismo estrato suelen ser similares y, por tanto, de alguna manera, se mantiene más diversidad en la muestra. Dicho de otra manera, es preferible pocos elementos, pero de todos los estratos, a tener muchos, pero de sólo algunos estratos. De ahí la manera en la que se suelen realizar los sondeos de opinión.
- Muestreo de Grupos. En cierto modo inverso al anterior, el muestreo de grupos consiste en elegir sólo elementos de unos grupos. El objetivo de este muestreo es generalmente descartar ciertos grupos que, por diversas razones, pueden impedir la obtención de buenos modelos.
- Muestreo Exhaustivo. Se trata de una exageración del muestreo estratificado, con motivaciones similares. Se procede de la siguiente manera: para los atributos numéricos (normalizados) se genera al azar un valor en el intervalo posible; para los atributos nominales se genera al azar un valor entre los posibles. Con esto obtenemos una instancia ficticia. El quid del procedimiento es que ahora buscamos la instancia real más similar a la ficticia. Se repite este proceso hasta tener n instancias. Nótese que el objetivo de este método es cubrir completamente el espacio de instancias y evitar poner muchos ejemplos de las zonas muy densas. Lógicamente, puede haber zonas donde no haya instancias, pero buscaremos de los alrededores la más cercana.
Selección de características relevantes. Reducción de dimensionalidad.
La selección de características, variables o atributos (feature selection, en inglés) tiene cuatro objetivos principales. En primer lugar, permite reducir el tamaño de los datos, al eliminar características o atributos de todos los ejemplos que puedan ser irrelevantes o redundantes. En segundo lugar, una buena selección de características puede mejorar la calidad del modelo, al permitir al método de minería de datos centrarse en las características relevantes. En tercer lugar, una buena selección de características permite expresar el modelo resultante en función de menos variables; esto es especialmente importante cuando se desean modelos comprensibles (árboles de decisión, regresión lineal, etc.). En cuarto lugar, se puede requerir una reducción de dimensionalidad a dos o tres características exclusivamente, con el propósito de representar los datos visualmente. Existen otras razones para eliminar atributos, por ejemplo, cuando existen muchos datos erróneos o faltantes en un atributo, y es preferible deshacerse de él. También es necesario para realizar análisis de componentes principales, porque si no eliminamos atributos identificadores estos pesarán más que ningún otro.
Algunos atributos son fáciles de eliminar, por ejemplo si un atributo es constante, es decir, tiene el mismo valor para todas las instancias es claramente eliminable. En general, sin embargo, no es tan sencillo. Empecemos por los casos relativamente simples.
Existen dos reglas generales para eliminar características:
- Eliminación de (partes de) claves candidatas: la regla general es eliminar cualquier atributo que pueda ser clave primaria de la tabla (o que sea clave candidata o incluso parte de clave candidata, parcial o totalmente). Por ejemplo, hay que eliminar números de documentos de identificación, códigos internos, nombre y apellidos, direcciones (exceptuando, quizá, los códigos postales), teléfonos, e incluso fechas (si éstas no son relevantes). Para aquellos que no son familiares con la tecnología de bases de datos, una manera sencilla de saber si un atributo nominal es demasiado específico y debe ser eliminado es ver si tiene casi tantos valores como ejemplos. Si no se elimina este tipo de atributos puede ser especialmente problemático para tareas de clasificación o de regresión.
- Eliminación de atributos dependientes: en la teoría de la normalización de bases de datos, cuando existen dependencias funcionales entre atributos se intenta normalizar en varias tablas. Por ejemplo, cuando se tiene el código postal, la ciudad, la región y el país de un individuo, sabemos que con el código postal tenemos la ciudad y la región, con la región tenemos el país, con lo que podemos establecer una serie de dependencias funcionales que se deben normalizar en cuantas tablas sean necesarias. Dado que los datos con los que trabajamos para minería de datos pueden provenir de una "vista minable" que ha desnormalizado los datos, muchas veces debemos decidir si realmente necesitamos todos los atributos, ya que muchos de ellos son redundantes. En este caso, una buena opción puede ser mantener sólo el código postal o, si el nivel de detalle es excesivo, puede interesar mantener sólo la ciudad o la región. No eliminar los atributos dependientes es especialmente nefasto a la hora de establecer reglas de asociación o para las tareas de agrupamiento.
En general, detectados los atributos irrelevantes y redundantes, debemos utilizar técnicas más sofisticadas si queremos seguir reduciendo la dimensionalidad, en particular para los atributos numéricos. Existen dos tipos generales de métodos para seleccionar características.
- Métodos de filtro o métodos previos: se filtran los atributos irrelevantes antes de cualquier proceso de minería de datos y, en cierto modo, independiente de él. Las técnicas, como veremos, son fundamentalmente estadísticas (medidas de información, distancia, dependencia o inconsistencia). El criterio para establecer el subconjunto de características "óptimo" se basa en medidas de calidad previa que se calculan a partir de los datos mismos.
- Métodos basados en modelo o métodos de envolvente (wrapper): la bondad de la selección de atributos se evalúa respecto a la calidad de un modelo de minería de datos o estadístico extraído a partir de los datos (utilizando, lógicamente, algún buen método de validación). Lógicamente, este tipo de técnicas requieren mucho más tiempo que las otras, ya que para evaluar hay que entrenar un modelo. Nótese que el método de minería de datos utilizado para hacer la selección de atributos no tiene por qué ser el método de minería de datos que se utilizará finalmente.
Ambos métodos pueden ser iterativos.
Veamos brevemente algunos métodos clásicos que se utilizan para establecer la independencia o importancia de las variables originales.
La primera técnica que vamos a ver consiste en realizar una matriz de correlaciones, conocida también como análisis correlacional.
El siguiente paso en sofisticación en el caso de atributos numéricos es pasar a una técnica basada en modelo (y no de filtro, como la anterior), en concreto un análisis por modelo lineal.
Siguiendo en sofisticación, los modelos lineales generalizados, en particular los modelos lag-linear, también pueden utilizarse para analizar atributos nominales y, en particular, tablas de frecuencia.
Hay que resaltar que la característica principal y la gran ventaja de los métodos de reducción de dimensionalidad mediante selección de características (a diferencia de los basados en transformación o sustitución de unos por otros, como el análisis de componentes principales) es que el conjunto final de características es un sub conjunto de los atributos originales y, por tanto, los modelos extraídos con posterioridad se definirán en función de (parte de) los atributos originales del problema y, por tanto, no perderán comprensibilidad.