En los últimos años, la cantidad de datos que se generan ha aumentado considerablemente. Hoy en día, en un segundo, se publican casi 9000 tweets, se suben más de 900 fotografías a Instagram, se realizan más de 80.000 búsquedas en Google y se envían cerca de 3 millones de emails. Esto es una simple prueba de la inmensa cantidad de información que todos los días generamos. Según el World Economic Forum, en 2025 se generarán 463 exabytes de datos diarios, que es el equivalente a más de 212 millones de DVDs [1].
Del mismo modo que un cocinero antes de ponerse a elaborar un plato necesita lavar las verduras, pelar las patatas, adobar la carne y medir bien las cantidades (entre otras cosas), un científico de datos necesita realizar una serie de operaciones previas antes de ponerse a resolver el problema que está tratando para hacer los datos “comestibles”. Debido a la gran cantidad de datos que se generan, este primer paso suele ser de vital importancia para corregir múltiples deficiencias que podemos encontrar y para ser capaz de extraer realmente la información relevante para nuestro problema. Según distintas encuestas realizadas a científicos de datos, en torno a un 80% del tiempo de trabajo se centra en obtener, limpiar y organizar los datos mientras que tan solo el 3% del tiempo se dedica a construir modelos de aprendizaje automático [2].
Como hemos comentado en posts anteriores, resolver un problema de aprendizaje automático consiste en optimizar una función matemática. Para poder cumplir esta premisa, tenemos que trabajar con datos numéricos que nos permitan ser usados en un contexto matemático.
Generalmente, cuando recibimos un conjunto de datos, además de encontrar valores numéricos, en la mayoría de las ocasiones debemos trabajar con datos no estructurados, que son aquellos datos que no se rigen por un esquema determinado, como pueden ser los textos, imágenes, vídeos, etc. Todos estos datos, si queremos poder utilizarnos para entrenar nuestro modelo deben ser convertidos a números. En este post vamos a hablar sobre las herramientas de limpiado de datos y en el próximo post de Inteligencia Artificial del blog de Xeridia hablaremos más en profundidad de las herramientas de transformación de datos.
Técnicas de limpieza de datos en Inteligencia Artificial
Las herramientas de limpiado de datos son aquellas que nos permiten arreglar errores puntuales que se dan en el conjunto de datos que estamos tratando y que afectan negativamente pudiendo interferir en el aprendizaje automático. Los defectos más comunes que se suelen tratar con estas herramientas son:
- Ausencia de valores: Es muy común que, si estamos trabajando con un conjunto de datos grande, algunos valores estén vacíos. Esto puede ocurrir por infinidad de motivos (ausencia de medición real, error al almacenar la información, error al recuperarla, etc.) El principal problema de estas ausencias es que impiden que el sistema de aprendizaje automático pueda entrenarse correctamente ya que la ausencia de datos no es numéricamente tratable. Para solucionar este problema existen varias aproximaciones que pueden ser utilizadas dependiendo de los datos que estemos tratando:
- Interpolación: Si estamos tratando con datos temporales, una política que se suele llevar a cabo es la de interpolar el dato ausente teniendo en cuenta los datos próximos.
- Rellenar con un valor fijo: Como puede ser la media, la moda o incluso el valor 0.
- Rellenar utilizando regresión: Existen técnicas que tratan de intentar predecir el valor perdido utilizando el resto de las variables de nuestro conjunto de datos. Uno de estos métodos es MICE (Multivariate Imputation by Chained Equation) [3].
- Considerar el vacío como una categoría: Si la variable donde faltan datos es categórica, podemos añadir una categoría extra que aglutine todos aquellos cuyo campo está vacío.
- Eliminar el registro completo: En el caso de que ninguna de las técnicas anteriores sea adecuada para rellenar los valores vacíos, en ocasiones se opta por descartar ese registro y trabajar exclusivamente con aquellos que sí que estén completos
- Inconsistencia de datos: Ocurre en muchas ocasiones que cuando estamos procesando datos detectamos errores en el formato o en el tipo de alguno de ellos. Esto puede ser debido a un error de lectura de los datos o a un mal almacenamiento de estos. Por ejemplo: fechas que siempre comienzan por el día del mes y en ciertos registros empiezan por el año, valores que deberían ser numéricos que incluyen otro tipo de caracteres, etc. Existen multitud de validaciones que es necesario comprobar y tratar de solucionar para que los datos sean coherentes. En este punto, dependiendo de la variable que estemos analizando, se deberán aplicar unas técnicas de validación u otras, que en ocasiones puede llegar a requerir conocimiento experto del problema.
- Valores duplicados: Puede suceder que en alguna ocasión encontremos registros duplicados en nuestro conjunto de datos. Es importante detectar estos registros y eliminar todos aquellos que se repitan más de una vez. No hacer esto podría suponer que el elemento duplicado sea tenido más en cuenta que el resto de los datos por parte del método de aprendizaje automático y, por lo tanto, éste se entrene de manera sesgada.
- Outliers: Debido a errores de almacenamiento, de medición o de inserción de los datos, pueden aparecer outliers (datos anómalos) en alguno de nuestros campos. Estos valores pueden distorsionar mucho la distribución de los datos haciendo que todo el proceso de aprendizaje se vea afectado. Existen muchas técnicas destinadas a intentar detectar estos datos anómalos. Este tema lo ampliaremos en futuras entradas del blog.
En la próxima entrada del blog abordaremos las herramientas de transformación de datos que nos permitirán adecuar toda la información de la que disponemos para que sea válida para entrenar un modelo de aprendizaje automático. Consulta nuestros servicios de Inteligencia Artificial.
Oscar García-Olalla Olivera es Científico de datos, ingeniero de I+D en Xeridia
[1] How much data is generated each day? – www.weforum.org (visitado en 02/2020)
[2] Cleaning Big Data: Most Time-Consuming, Least Enjoyable Data Science Task, Survey Says – www.forbes.com (visitado en 02/2020)
[3] Azur MJ, Stuart EA, Frangakis C, Leaf PJ. Multiple imputation by chained equations: what is it and how does it work?. Int J Methods Psychiatr Res. 2011;20(1):40–49. doi:10.1002/mpr.329