Introducción

El objetivo de realizar un análisis exploratorio consiste en examinar los datos en base a su distribución, características antes de realizar alguna técnica estadística.

El objetivo principal es entender los datos y sus variables antes de acometer algún tipo de análisis más detallado.

Detectar fallas en el diseño de los datos o en la recolección y aplicado a datos univariantes o multivariantes.

El proceso de obtención de información a partir de los datos involucra una serie de procesos asociados.

El proceso de obtención de información a partir de los datos involucra una serie de procesos asociados.

KDD

Knowledge Discovery in Databases es un proceso orientado a la identificación de patrones y al descubrimientos de patrones nuevos mas entendibles.

Knowledge Discovery implica la evaluación e interpretación de patrones y modelos para tomar decisiones con respecto a lo que constituye conocimiento y lo que no lo es. Por lo tanto, el KDD requiere de un amplio y profundo conocimiento sobre tu área de estudio.

KDD requiere un mayor conocimiento acerca del área de estudio que el Data Mining.

Comprension del dominio de estudio

Como en cualquier tipo de investigación, es fundamental tener muy claros los límites y objetivos de lo que pretendemos. Es muy fácil perder el rumbo en el océano infinito de datos a nuestra disposición.

  • Desarrollo de un entendimiento sobre el dominio
  • Descubrimiento de conocimiento previo que sea relevante
  • Definición del objetivo del KDD

En este paso es cuando reconocemos las fuentes de información más importantes y quienes tienen control sobre ellas. También es relevante incluir toda la metadata relacionada, dimensionar la cantidad de datos, y formatos.

Se recomienda que toda la información más importante que se encuentre solamente en medios físicos sea digitalizada, previo a iniciar las actividades de KDD.

El KDD se refiere al proceso general de descubrir conocimientos útiles a partir de datos, y la minería de datos se refiere a un paso particular en este proceso. La minería de datos es la aplicación de algoritmos específicos para extraer patrones a partir de los datos. La distinción entre el proceso KDD y el paso de minería de datos (dentro del proceso) es un punto central de este artículo. Los pasos adicionales en el proceso KDD, tales como preparación de datos, selección de datos, limpieza de datos, incorporación de conocimiento previo apropiado e interpretación apropiada de los resultados de la minería, son esenciales para asegurar que el conocimiento útil se derive de los datos. La aplicación ciega de métodos de minería de datos (correctamente criticados como dragado de datos en la literatura estadística) puede ser una actividad peligrosa, que fácilmente conduce al descubrimiento de patrones sin sentido e inválidos.

KDD ha evolucionado y sigue evolucionando desde la intersección de campos de investigación como el aprendizaje de máquinas, reconocimiento de patrones, bases de datos, estadísticas, IA, adquisición de conocimientos para sistemas expertos, visualización de datos y computación de alto rendimiento. La meta unificadora es extraer conocimiento de alto nivel desde datos de bajo nivel en el contexto de grandes conjuntos de datos.

El proceso KDD puede ser visto como una actividad multidisciplinaria que abarca técnicas fuera del alcance de cualquier disciplina en particular, como el aprendizaje automático o machine learning. En este contexto, existen oportunidades claras para que otros campos de IA (aparte del aprendizaje automático) contribuyan al KDD. El KDD pone un énfasis especial en encontrar patrones comprensibles que se pueden interpretar como conocimiento útil o interesante. Así, por ejemplo, las redes neuronales, aunque son una potente herramienta de modelado, son relativamente difíciles de entender en comparación con los árboles de decisión. El KDD también hace hincapié en las propiedades de escalado y robustez de los algoritmos de modelado para grandes conjuntos de datos ruidosos.

Limpieza y procesamiento de datos

Los datasets disponibles en la actualidad usualmente están incompletos (valores de atributos faltantes), tienen ruido (errores y datos aislados o outliers), o presentan inconsistencias (discrepancias en los datos recolectados).

  • Eliminación de ruido y datos aislados o outliers.
  • Uso del conocimiento previo para eliminar las inconsistencias y los duplicados.
  • Selección y uso de estrategias para manejar la información faltante en los datasets.

Estos “datos sucios” pueden confundir el proceso de minería y conducir a resultados inválidos o poco confiables.

El preprocesamiento y la limpieza tienen el objetivo de mejorar la calidad de los datos y los resultados de la minería. Recuerda que la implementación de análisis complejos y el minado de grandes cantidades de datos puede tomar mucho tiempo, así que lo que podamos hacer para acortar ese tiempo será siempre de provecho.

Minería de datos

La minería es una exploración. Nos adentramos en la inmensidad de los datos y descubrimos poco a poco los patrones o modelos presentes en ellos; las relaciones.

Y en esta exploración, una de nuestras herramientas más útiles son los algoritmos.

¿Qué es un algoritmo? Básicamente, un algoritmo es una serie de instrucciones o reglas establecidas en un programa informático que nos permiten llegar a un resultado o solución.

En el caso de la minería de datos, un algoritmo nos permite procesar un set de datos para obtener nueva información sobre ese mismo dataset.

En general, la minería de datos comprende tres pasos: la selección de la tarea, la selección del algoritmo (o algoritmos) y su uso.

El algoritmo busca patrones y modelos que nos interesen, siguiendo sus reglas preestablecidas, que pueden incluir árboles de clasificación, modelos de regresión, clusters, modelos mixtos, entre otros.

La mayoría de los métodos de minería de datos se basan en técnicas comprobadas de aprendizaje automático o machine learning, reconocimiento de patrones, y estadísticas: clasificación, agrupación, regresión, etc. La formación de diferentes algoritmos bajo cada uno de estos encabezados a menudo puede ser desconcertante para el analista de datos novato y también para el experto.

Debe hacerse hincapié en que, de los muchos métodos de minería de datos anunciados en la literatura, en realidad sólo hay unas pocas técnicas fundamentales.

Interpretación de patrones minados

Es importante que comprendamos la diferencia entre dos términos clave: patrones y modelos.

  • Patrones: son estructuras locales que hacen declaraciones sólo sobre un espacio restringido por variables. Esto tiene aplicaciones importantes en detección de anomalías como la detección de faltas en procesos industriales o de fraudes en el sistema bancario.
  • Modelos: son estructuras globales que hacen declaraciones sobre cualquier punto en el espacio de medición. Por ejemplo, los modelos pueden predecir el valor de alguna otra variable.

En la etapa de interpretación, hallamos los patrones y modelos en los datos analizados.

Los resultados deben presentarse en un formato entendible. Por esta razón las técnicas de visualización son importantes para que los resultados sean útiles, dado que los modelos matemáticos o descripciones en formato de texto pueden ser difíciles de interpretar para los usuarios finales.

Desde este punto del proceso es posible regresar a cualquiera de los pasos anteriores.

Imputación de datos

La falta de datos en el proceso de captura puede deberse a diversas situaciones que van desde:

  • fatiga del informante
  • rechazo a informar
  • calidad de la muestra
  • formación del encuestador

Los valores NA (not available) no pueden ser comparados ni se puede realizar operaciones sobre ellos.

Detección en R

La elección de datos ausente se debe verificar previo a la realización de ciertas calculas para entender su resultado, que puede verse afectados por la aparición de datos nulos.

##  [1]  9  5  8  9  1  2  8  7  2  1 NA  5  4  4  7  9  3 NA  2  2  2  5  6
## [24]  7  7  1 NA  8  1  7  1  3  8  3  4  1  1  6  3 NA  7  4  4  8  9  2
## [47]  7  2  2  7

is.na(objeto)

Devuelve TRUE si el objeto contiene un valor Nulo o ausente. Se aplica a cada elemento del objeto.

##  [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
## [12] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
## [23] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [34] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
## [45] FALSE FALSE FALSE FALSE FALSE FALSE

na.fail(objeto)

Se utiliza para detener la ejecución de u scrip o programa si el objeto contiene algún valor ausente.

any(is.na(objeto))

Devolverá TRUE si existe al menos un valor ausente dentro de objeto.

## [1] TRUE

Eliminar datos ausentes

La eliminación de datos ausentes es una medida que de be realizarse en forma previa a cualquier análisis posterior del conjunto de datos.

na.omit(objeto)

Elimina del objeto cualquier dato ausente existente

##  [1] 9 5 8 9 1 2 8 7 2 1 5 4 4 7 9 3 2 2 2 5 6 7 7 1 8 1 7 1 3 8 3 4 1 1 6
## [36] 3 7 4 4 8 9 2 7 2 2 7
## attr(,"na.action")
## [1] 11 18 27 40
## attr(,"class")
## [1] "omit"

complete.cases(objeto)

Se utiliza en dataframes y verifica que ninguna de las columnas de cada fila contenga valores NA. Devuelve un vector, con valor de TRUE en las filas sin valores ausente (completas) y FALSE en el resto. este vector puede utilizarse para seleccionar filas de interés.

## 'data.frame':    153 obs. of  6 variables:
##  $ Ozone  : int  41 36 12 18 NA 28 23 19 8 NA ...
##  $ Solar.R: int  190 118 149 313 NA NA 299 99 19 194 ...
##  $ Wind   : num  7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...
##  $ Temp   : int  67 72 74 62 56 66 65 59 61 69 ...
##  $ Month  : int  5 5 5 5 5 5 5 5 5 5 ...
##  $ Day    : int  1 2 3 4 5 6 7 8 9 10 ...
## [1] 111
## [1] 111

Algunas funciones de R pueden funcionar con valores NA, ingresando un parámetro adicional de tipo na.rm o action

## 
## Call:
## lm(formula = Solar.R ~ Temp, data = airquality, na.action = na.omit)
## 
## Coefficients:
## (Intercept)         Temp  
##     -24.431        2.693

Limpieza de datos

Los valores ausentes son relativamente comunes en los set de datos y se deben a muchas causas: fallas en la captura de datos o en la transcripción de datos.

Missing Completely at Random (MCAR)

Los valores perdidos no se relacionan con las variables en el set de datos. Esta función elimina las filas que tengan 100% de datos perdidos.

Como dice, los valores faltan aleatoriamente de su conjunto de datos. Los valores de los datos que faltan no se relacionan con ningún otro dato del conjunto de datos y no existe un patrón para los valores reales de los datos que faltan.

Por ejemplo, cuando el estatus de fumador no se registra en un subconjunto aleatorio de pacientes. Esto es fácil de manejar, pero desafortunadamente, los datos casi nunca faltan completamente al azar.

Missing at Random (MAR)

Esto es confuso y sería mejor decir que falta condicionalmente al azar. Aquí, los datos que faltan tienen una relación con otras variables en el set de datos. Sin embargo, los valores reales que faltan son aleatorios.

Por ejemplo, el estatus de fumador no está documentado en pacientes mujeres porque el médico era demasiado tímido para preguntar.

Not Missing at Random (NMAR)

El patrón de falta de datos está relacionado con otras variables del conjunto de datos, pero además, los valores de los datos que faltan no son aleatorios.

Por ejemplo, cuando no se registra el estado de tabaquismo en los pacientes ingresados como una emergencia, que también son más propensos a tener peores resultados de la cirugía.

La falta de datos no aleatorios es importante, puede alterar sus conclusiones y es la más difícil de diagnosticar y manejar. Sólo pueden detectarse recogiendo y examinando algunos de los datos que faltan. Esto es a menudo difícil o imposible de hacer.

La forma de tratar los datos que faltan depende del tipo de falta.