Realizar un buen análisis permite no solo desestimar datos innecesarios o de formato incorrecto, sino también generar mejores respuestas y soluciones. Fabrizio Dutra, físico y arquitecto software de Santander Global Tech, cuenta de qué se trata el proceso que es fundamental para las empresas.
Los procedimientos de ‘Data Cleaning’ o limpiar el dato, permiten generar coherencia en los datos para la respuesta que se busca. Así lo define Fabrizio Dutra, físico y arquitecto software de Santander Global Tech que sostiene en su artículo “El generador de coherencia: ‘Data Cleaning’” que en el análisis es importante que la información que se estudia no contemple datos innecesarios o de formato incorrecto para evitar deducciones erróneas o imprecisas. “Por ejemplo si se quiere hacer un modelo sobre los vuelos a bajo coste dentro Europa no tiene sentido que en los datos incluya billetes de primera clase o billetes de autobús” comparte en el escrito.
Otros casos que también se deben considerar, asegura, son los datos malos. Por ejemplo, si se hace un análisis sobre el tiempo medio que lleva un autobús para llegar a una parada, debe comprobarse no esté defectuoso el GPS del vehículo.
Dutra se dedica al Big Data e investiga sobre distintas temáticas como Machine Learning, Cyber, Gestión de configuración, entre otros, y con esa experiencia resalta la importancia de limpiar los datos además de analizar información incorrecta o irrelevante.
Un modelo de Machine Learning
El ciclo de vida para producir un modelo de Machine Learning se puede distribuir en los siguientes pasos:
- Obtener los datos
- Limpiar y preparar los datos
- Generar el modelo
- Evaluar el modelo
- Desplegar el Modelo
- Hacer predicciones
Dentro de estos pasos, el relativo a la limpieza y preparación de los datos es el más costoso, pero es uno de los más importantes. Esta etapa es conocida como Data Cleansing o Data Cleaning.
¿Qué es el Data Cleaning?
Como Data Cleaning se entiende todas las operaciones necesarias para depurar la información que puede desviar el análisis de su objetivo. Durante esta fase se realizan descartes de datos y la gestión de los ausentes.
Se puede pensar que con esta limpieza se puede perder información importante para el modelo; pero realizada de modo correcto esta mejora la calidad del dato y nos aproxima a una respuesta más correcta sobre la pregunta que se quiere responder.
Algunas de las operaciones de limpieza que se pueden realizar son:
Limpieza de datos mal formateados
El impacto del formato de datos es evidente en análisis. Es fácil deducir que si se espera que un campo sea el dato relativo a un precio pero trabaja con un texto…, el proceso fallará.
Limpieza de los datos incongruentes
La limpieza de datos incongruentes depende del conocimiento del dato. Por ejemplo, si estás analizando los datos sobre la ruta de taxis al aeropuerto, puedes excluir de los datos todas las rutas que no terminan en el aeropuerto.
Compensación de los datos ausentes
Es posible que haya campos que no estén informados, a estos se le denominan los datos ausentes. En este caso hay dos opciones:
- Descartar los datos
- Rellenarlos como mejor se pueda
En muchos casos se elige la segunda opción donde para los números se puede poner un valor medio del campo, o la mediana. Y respecto a los datos no numéricos, se puede aislarlos como una categoría aparte.
Ejemplo práctico: Predicción de precios
En lo que sigue, se va demostrar lo útil que puede ser el Data Cleaning con un ejemplo. Para ello, hay que hacer un análisis para prever las tarifas de los taxis de Nueva York dentro de la isla de Manhattan. Este es uno de los problemas clásicos de introducción de la página de Kaagle. Esta es es una comunidad de Data Science que realiza desafíos de análisis de datos con una comunidad muy activa. A los interesados en el mundo del Machine Learning.
Para poder ejecutar el ejemplo, se hará uso de Jupyter Notebook (Sobre la instalación y el uso del Jupyter notebook. Mientras tanto, una buena referencia es la propia página de Jupyter). Los datos sobre el movimiento de taxis se obtendrán de la página NYC OpenData.
Para poder realizar la prueba dentro del entorno de Jupyter Notebook es necesario una versión reducida, para tener los tiempos de ejecución aceptables. También se restringe el dataset a solo Manhattan. Para simplificar el modelo hay que eliminar los campos que no sean numéricos (p.e: “payment_type”) y también aquellos que por su naturaleza no tienen correlación con la pregunta.
Con estos datos, sin limpiar, se intenta generar un modelo Random forest:
El valor de correlación que se espera en este caso debería ser el más pequeño posible: un valor cero implica que coinciden la previsión, en este caso se refiere a Overfitting, que es otro problema.
El resultado se puede interpretar como que el modelo puede predecir el coste del viaje en taxi, teniendo todos los otros datos, con un error de cerca de 1 dólar; que no está mal.
Ahora se puede si se limpia un poco los datos. Por ejemplo:
- Se quita los valores negativos de la cantidad
- los taxis vacíos (sin pasajeros)
- los viajes demasiados largos (1000 km dentro de la isla de Manhattan es bastante raro)
- y las tarifas que parecen absurdas (suponiendo un límite de 410 dólares)
Ahora calculando el modelo con los datos pre-procesados se obtiene:
Se tiene como desviación ahora 0.17 dólares para nuestro modelo predictivo y sin hacer ningún tipo de calibración en el mismo. Es un resultado mucho mejor que el anterior y se ajusta a lo que se podía esperar.
Conclusión
Como se ha visto, la preparación y limpieza de los datos, antes de generar el modelo, lleva a una mejora importante en cuanto a la predicción que se consigue con los modelos.
Es importante considerar que el trabajo de preparación de los datos es el más costoso, ya que es necesario un análisis exploratorio del mismo y procesar las millones de entradas para formatearlos de modo correcto.
Aún no hay comentarios