Información y conocimiento que subyace bajo los datos: la minería de datos o data mining (II)

Comenzamos en el artículo anterior con una serie de ellos donde pretendemos presentar qué es la minería de datos (data mining, en inglés). Para recordar lo que introdujimos en el número anterior podemos decir que la minería de datos o exploración de datos es la etapa donde, tras la recopilación de los datos, su limpieza de datos erróneos, la comprobación de la integridad de estos y su análisis con las diferentes técnicas estadísticas que usaremos, procedemos al descubrimiento del conocimiento que subyace bajo esas bases de datos. Es un campo de la estadística y de las ciencias de la computación referido al proceso que intenta descubrir patrones en grandes volúmenes de conjuntos de datos.

Una característica del data mining es que cuando comenzamos este proceso no tenemos una hipótesis de partida

Una característica de la minería de datos es que cuando comenzamos este proceso no tenemos una hipótesis de partida (algoritmos no supervisados) como en otros análisis estadísticos o estudios como podrían ser los estudios clínicos aleatorizados, donde tenemos una hipótesis previa (algoritmos supervisados) y con una serie de estudios queremos comprobar si nuestra hipótesis es o no cierta.

Vimos también las etapas que debemos seguir en un proceso de minería o exploración de datos y a modo de resumen podemos decir que son:

  • Selección del conjunto de datos, donde elegiremos las variables objetivo y las variables independientes.
  • Análisis de las propiedades de los datos, con especial atención a los métodos gráficos.
  • Transformación del conjunto de datos de entrada para aplicar la técnica de minería de datos que mejor se adapte a los mismos.
  • Selección y aplicación de la técnica de minería de datos, donde construiremos el modelo predictivo, de clasificación o de creación de conglomerados o clústers.
  • Extracción de conocimiento, mediante los patrones de comportamiento observados en los valores de las variables del problema o relaciones de asociación entre dichas variables.
  • Interpretación y evaluación de datos.

Podríamos verlo de otro modo y pensar que aplicamos un protocolo de trabajo en el que debemos comprender ante todo el campo de trabajo o el negocio ante el que estamos. En muchas ocasiones, los especialistas en determinados campos (por ejemplo, la producción de cerdos) desconocen estas técnicas, pero tenemos una gran cantidad de datos.

Un ejemplo

Por seguir con el ejemplo que pusimos en el capítulo anterior de una empresa integradora de cerdos, al cabo de los años se acumulan millones de datos de lotes de cerdos en las granjas de reproductoras, en los destetes y en los engordes, con los datos sanitarios, enfermedades que han padecido los diferentes lotes de animales, los diferentes planes de alimentación que hemos ido aplicando, las modificaciones que se han hecho en las granjas, las genéticas que hemos usado, las diferentes pautas de manejo reproductivo usadas y así hasta que tuviéramos definido todo el conjunto de datos.

Un especialista en gestión de bases de datos con probabilidad no tendrá nuestro conocimiento en producción porcina y en la minería de datos debemos recordar que no tenemos una hipótesis de partida con lo que debemos “bucear” en los datos. Ambos técnicos deben interactuar constantemente para ver si por ejemplo los datos que se desechan por estar fuera de rango (los denominados outliers) tiene sentido o no eliminarlos, o si las variables independientes en un modelo que se irá construyendo tienen sentido o no.

  • En el primer caso, imaginemos que en determinadas granjas de reproductoras hemos estado inseminando con varios verracos experimentales y su descendencia tiene unos índices de conversión asombrosos. Pero el analista toma por outliers y los desecha: habremos tirado parte del progreso.
  • O en el segundo caso, una variable que forma parte de la caracterización de los edificios de destete es muy significativa, por ejemplo, que haya chimeneas y el analista cree haber hecho un descubrimiento, mientras que para los técnicos porcinos es una variable habitual ya que casi todas las granjas de destete las tienen.

Por tanto, la colaboración y comunicación en esta técnica es básica para la validación de los resultados obtenidos.

Las 6 etapas del data mining descritas no son lineales necesariamente

Iremos probablemente saltando de una a otra a lo largo de un proceso de aprendizaje en el que unos modelos nos descubrirán o darán ideas para volver atrás y usar todos o partes de los datos para generar de nuevo otro modelo que ayude al anterior. O que analice y visualice otro punto de vista, factor o variable.

Sí, pero ¿qué técnicas usamos? ¿Cómo comenzamos?

A lo largo de todos los años y números que hemos ido publicando en Suis, hemos estudiado algunas de las técnicas que mencionaremos a continuación. Lo que vamos a hacer de aquí en adelante es, usando un conjunto simulado de datos que bien podría ser real, aplicar la minería de datos.

La minería de datos se nutre principalmente de la estadística, pero también de las matemáticas a través de la computación y de la programación informática. Lo que vamos a usar no son más que algoritmos más o menos sofisticados que aplicaremos para llegar a nuestro conocimiento.

Las principales técnicas que se usan en el data mining son:

  • Modelos estadísticos en los que agruparemos desde la sencilla prueba de la t-Student para comparar medias, como los modelos ANOVA, ANCOVA o MANOVA, el análisis de medidas repetidas, la regresión lineal como avance del modelo ANOVA, los modelos lineales generalizados y sus derivados como los árboles de decisión.

  • Métodos de clasificación o clustering partiendo de inicio con los análisis de componentes principales y su desarrollo hacia técnicas como las clasificaciones mediante K-medias, árboles de clasificación, redes neurales que merecerán un capítulo especial más por lo novedoso del sistema que por los actuales resultados muchas veces complicados de comprender. Además, los sistemas y los “Random Forest” que agrupan o son una evolución de los árboles de clasificación que usan variables categóricas, y los árboles de regresión que usan variables cuantitativas.

Por supuesto, iniciaremos todos las técnicas con ideas sobre cómo preparar los conjuntos de datos que tengamos para preparar bases de datos que puedan ser usadas en la minería de datos sin olvidar los análisis gráficos que nos ayudarán a visualizar nuestros datos.

Y como inicio, tras estos dos números introductorios, repasaremos lo que explicamos en el número 146 titulado “Preparación de los datos”. En esa ocasión partíamos de un conjunto denominado “data_cleaning.xlsx” que podéis descargar en nuestro Drive de manera gratuita.

Una vez descargado el fichero, iremos a R, cargaremos la librería “RCommander” mediante la instrucción library(Rcmdr). Ya cargado RCommander, cargaremos nuestro archivo yendo a “Datos/Importar conjunto de datos/Desde archivo un archivo Excel” y lo denominaremos, como hicimos entonces “Limpiar”.

En “Datos/Conjunto de datos activos/Variables del conjunto de datos activo” veremos los nombres de las variables.

Estas forman el conjunto de datos y son:

  • id_cer: el número de cada cerdo sacrificado,
  • pes_cer: peso del cerdo (kg),
  • fat_cer: espesor de la grasa dorsal (mm),
  • gran: nombre de la granja de origen y
  • cat_cer: categoría de la canal.

Para identificar cuántos registros están completos y cuántos incompletos escribiendo en la consola:

nrows <- nrow(Limpiar)
nrows

y R nos informará de que tenemos 2547 registros. El número de registros completos, sin datos faltantes, será

ncomplete <- sum(complete.cases(Limpiar))
ncomplete

2494 registros completos y el porcentaje de casos completos será:

ncomplete/nrows
[1] 0.9791912

Aproximadamente un 98 % de los datos están completos. Con el 2 % restante se pueden hacer dos cosas: eliminarlos o gestionarlos (intentar recuperarlos) de alguna forma. De momento, optamos por eliminarlos para tener un fichero sin datos faltantes (missing values) y seguir nuestro ejemplo práctico de limpieza.

Para eliminar los registros que contienen datos faltantes (de ahora en adelante, NA) vamos a “Datos/Conjunto de datos activo/Eliminar los datos con valores omitidos” (fig. 1). Elegimos “todas las variables” y denominamos al conjunto de datos nuevo “limpio” (fig. 2).

R limpieza

Figura 1. Eliminación de los registros incompletos.

Figura 2. Creando el nuevo conjunto de datos “limpio”.

R nos devuelve:

limpio <- na.omit(Limpiar)

Nuestro conjunto de datos ahora se denomina “limpio” y no tiene registros incompletos.

Como conclusión, podemos decir que realizar en R estos primeros pasos básicos para tener una base de datos lista para analizar no es complicado y hacerlo nos ahorrará en el futuro obtener resultados erróneos o con poca exactitud. Esto es imprescindible de tener siempre, realicemos un análisis de data mining o cualquier otro tipo.