La preparación de datos.

<  VOLVER
Por: Datahack
junio 22, 2022
Datahack
junio 22, 2022

Por Alejandro Arranz

INTRODUCCIÓN

Existe un fenómeno común a los deportes de equipo (por lo menos a los más populares) y es que, para aquellos que les interese alguno de estos deportes, cuando van a consultar la prensa que los cubre, seguramente se encuentre que sus crónicas las copan aquellos que marcan los goles, las canastas, los tantos...etcétera. Igualmente, si este tipo de deportes no te interesa lo más mínimo, pero tuvieras que dar el nombre de algún deportista de élite que los practique...seguramente este se corresponda con el alguno de los omnipresentes en las susodichas crónicas. En pocas palabras, los que “molan” suelen ser invariablemente los máximos anotadores.

En los proyectos relacionados con Inteligencia Artificial, sean de Machine Learning o de Deep Learning (por mencionar las dos disciplinas más populares de esa rama), pasa un poco lo mismo. Si echamos manos de “la prensa” enseguida veremos que los titulares apuntan en la misma dirección: “El modelo que quitará el trabajo a los radiólogos”, “El modelo que ha derrotado al campeón mundial de Go”, “Los treinta modelos embebidos que hacen que los Tesla sean completamente autónomos…”. El modelo es al que apuntan los focos.

Claro...como cuando preguntan a los críos que empiezan a practicar deporte aquello de “y tú ¿cómo quien quieres ser?”, no es habitual que respondan “pues como tal jugador, porque me encanta la infatigable labor que hace en el medio del campo para robar la pelota y sacarla jugada de forma fácil y limpia para el compañero más próximo”. Igualmente cuando alguien que arranca su periplo como Data Scientist, seguramente si le preguntas a qué aspira...no te responderá “a conseguir dar forma a los datos de la forma más adecuada posible de tal manera que el modelo diseñado pueda sacar el máximo provecho de los mismos”.

Queremos meter goles. Queremos hacer modelos.

Si te apetece, otro día, podemos hacer una entrada en el blog sobre la importancia de este tipo de roles de trabajo menos vistoso en el mundo de los deportes de equipo. Por de pronto, vamos a ceñirnos al ámbito de las máquinas y desgranar la importancia de la(s) tarea(s) comprendidas dentro de la limpieza de datos y porque es algo que también mola.

MACHINE LEARNING Y LIMPIEZA DE DATOS

Aunque a estas alturas ya lo tengas seguramente más que claro, no está de mas recordar que el Machine Learning es una disciplina que tiene como objetivo que las máquinas aprendan a partir de la experiencia; es decir: que un modelo matemático sea capaz de extraer los patrones propios de un determinado problema a partir de de un (gran) conjunto de datos relativos a este. Aquel modelo matemático utilizará una o varias máquinas para disponer de la potencia de cálculo necesaria, que le permita exprimir todos esos datos y extraer así ese patrón o aprendizaje relativos a la resolución de ese problema.

Vamos a aterrizar esto con un ejemplo: supongamos que tenemos un conjunto de analíticas de pacientes enfermos y sanos con respecto a una determinada patología. Si queremos construir un modelo que sea capaz de, dada la analítica de un nuevo paciente, determinar si este padece o no aquella patología. Entrenaremos el modelo matemático con los datos que tenemos y este (a su manera) aprenderá qué patrones se dan en las analíticas de aquellos pacientes enfermos, de tal manera que pueda extrapolarlo a nuevos casos.

¿QUIÉN HA ENSUCIADO MIS DATOS?

Quizá el nombre limpieza de datos, resulte un poco engañoso. Valga decir que esta disciplina comprende todo lo necesario para que, según la definición de Machine Learning que acabas de leer, los datos disponibles para resolver el problema sean dispuestos de tal manera que puedan ser utilizados por un modelo matemático para su entrenamiento.

Hay que pensar que dicho modelo maneja únicamente números (existe alguna excepción a esto, pero en general es así). Es decir, nuestros datos, como mínimo, tienen que ser transformados a un formato numérico antes de poder ser utilizados para entrenar un modelo. Ojo a esa coletilla “como mínimo”, quiere decir que esto sería lo básico para que modelo llegue a comenzar su entrenamiento sin problemas. Pero si buscamos que este entrenamiento sea lo más exitoso posible, habrá que recurrir a otras técnicas.

Siempre decimos que, lamentablemente, no existe una receta que pueda ser aplicada a todos los problemas de Machine Learning. No obstante, existen una serie de pasos que prácticamente siempre podemos tomar como referencia a la hora de abordar la limpieza de datos.

MANOS A LA OBRA

Podemos decir que estos pasos que mencionamos a continuación, son innegociables, aunque, como ya hemos indicado, no tienen porque ser los únicos a seguir:

EXPLORACIÓN

Que no nos pueda el ansia por empezar a toquetear: si no nos hemos tomado la molestia siquiera de visualizar como se distribuyen nuestros datos, no tiene sentido empezar a manosearlos. Primero, lo primero: histogramas, boxplots, gráficos de dispersión...todo aquello que ayude a entender cómo se distribuyen las variables o features de las que disponemos. Muy seguramente, de aquí saquemos una intuición de cuales pueden ser problemáticas.

LIMPIEZA

Normalmente en este proceso nos encargamos de los problemas “de bulto”, es decir, aquellos que cantan bastante. Aquí incluimos los archiconocidos valores missing, null, NA, NaN...ya sabes, cualquiera de las distintas formas en las que el Mal puede materializarse en nuestros datos y que se manifiesta mediante la ausencia de dato, donde deberiá de haberlo.

Muy probablemente, el modelo matemático con el que hayas elegido empezar a probar, no sepa que hacer con uno de estos valores ausentes y cascará de forma inmisericorde cuando quieras empezar el proceso de entrenamiento. Así que hay que decidir como rellenarlos...o prescindir de ellos.

Hay más anomalías que podemos tratar en este punto, por ejemplo muestras o registros duplicados. Estas duplicidades pueden ser de distintos tipos, quizá podamos encontrar registros totalmente idénticos o quizá solamente idénticos según algunos campos. En este último caso, habría que considerar si esas duplicidades son normales o no.

En cuanto al entrenamiento se refiere, los registros duplicados no aportan nada, con lo cual se pueden eliminar sin mucho problema. Pero cabe preguntarse sobre su origen, ¿es posible que la presencia de duplicados sea indicativo de algún tipo de problema, quizá, en alguna proceso de extracción de datos?

Tenemos que ser conscientes de que las “cosas raras” que encontremos en nuestros datos, podrían no solo afectar a nuestro entrenamiento, sino ser síntomas de algún tipo de defecto o problema en el flujo de captura y tratamiento de los mismos. Y esto sería algo gordo.

TRANSFORMACIÓN

Salvo honrosas excepciones (mayormente aquellos modelos basados en árboles de decisión), los modelos matemáticos solo manejan números. Es decir que aquellas features categóricas, cuyos valores son de tipo texto (por ejemplo) que podemos encontrar en cualquier dataset, deben ser transformadas de alguna manera en algo numérico para que el modelo matemático pueda entrenar con ellas. El cómo hacer esto, ya depende de del tipo de feature categórica y de su significado.

ENRIQUECIMIENTO

Este es un buen percal. Aquí, podemos decir que practicamente vale todo, desde encontrar un dataset que pueda complementar al que estamos manejando: imagina un dataset con personas y otro dataset de renta per cápita en municipios de España que, cruzándolo con el primero, te permite tener una idea de la renta del individuo en cuestión. En este caso, habríamos enriquecido nuestro dataset de personas, con ese otro dataset de renta per cápita por municipios.

Pero no te preocupes si no tienes ningún otro dataset a mano, hay más maneras de enriquecer el dataset. Por ejemplo a través de features sintéticas, es decir, obtener nuevas features combinando de forma hábil las ya existentes. Esto permite proporcionar a nuestro modelo matemático features más potentes y representativas e, implicitamente, dejar de pasarle otras features más superfluas y menos necesarias.

Incluso el hecho de conseguir identificar simplemente este segundo punto y poder prescindir de esas features innecesarias para entrenar al modelo, sería un éxito. Hay que tener en cuenta, que un dataset más ligero, permitirá entrenamientos más rápidos y por lo tanto nos habilitará para probar más cosas distintas en menos tiempo.

Muy importante: es fácil embuclarse y perderser en cualquiera de estos pasos, pero muy especialmente en este. ¡No obsesionarse! Hay que ir iterando de forma más o menos ágil, probar, cosas, entrenar, avanzar, ir afinando...pero no dar vueltas y vueltas a lo mismo, porque sino, esto se convierte en una esponja de tiempo...y de dinero claro.

OTROS

Aquí podemos incluir lo que se conoce como  inverstigación de outliers o valores que se alejan de forma sospechosa del resto de “compañeros” de distribución. El problema de este tipo de valores es que pueden confundir al modelo a la hora de aprender, ya que suponen ruido para el mismo o lo que es lo mismo, suponen “excepciones a la regla” que queremos que el modelo aprenda. Dicho de otra manera: queremos que el modelo aprenda patrones, no excepciones. Y los outliers son excepciones.

Las acciones con respecto a outliers se orientan a su detección y análisis y en base a estos se determinará qué se hace con ellos (si se hace algo)

Llegados a este punto, es posible que por todo lo comentado hasta ahora, alguien haya colegido que si una feature es numérica y no tienen ningún hueco o valor missing, todo está bien. El caso es que esto no es así.

Es habitual que las features numéricas tengan magnitudes dispares, por ejemplo podemos tener la feature edad de la persona que rara vez pasará de las dos cifras y también la feature renta per capita que, esperemos, siempre llegue por lo menos a cinco. Esta disparidad de magnitudes, puede ocasionar que los modelos matemáticos tiendan a dar más peso a aquellas features cuya magnitud es mayor, opacando a aquellas otras de menor magnitud, por muy valiosas o representativas que puedan ser.

Para evitar esto, se recurren a distintas técnicas de escalado o de estandarización. Dependiendo del tipo de modelo matemático que queramos entrenar, el utilizar unas u otras puede ser crucial. En cualquier caso, la moraleja aquí es que, aun siendo numéricas, las features deben de ser “ajustadas”.

Tampoco queremos extendernos mucho más, como ves, estamos ante una disciplina sumamente interesante y que nos permitirá adquirir un conocimiento muy valioso de los datos que manejamos.

Si quieres más información sobre nuestro master, puedes contactar con nosotros bien por teléfono al +34 910 91 28 42 o +34 630 88 13 53, por whatsapp directamente pinchando aquí o aquí, o mandando un mail con tus datos de contacto (nombre completo y teléfono) a: info@admin_rubicon

¡Que no se te pase una!

Recibe nuestra programación mensual de eventos online y la apertura de nuevas convocatorias de cursos




    En Datahack Consulting SL trataremos los datos que nos facilites con la finalidad de enviarte información relacionada con tu solicitud sobre nuestros servicios, así como enviarte comunicaciones informativas sobre nuestra actividad. Podrás ejercer los derechos de acceso, rectificación, limitación, oposición, portabilidad, o retirar el consentimiento enviando un email a administracion@datahack.es. También puedes solicitar la tutela de derechos ante la Autoridad de Control (AEPD). Puedes consultar información adicional y detallada sobre protección de datos en nuestra Política de Privacidad.

    Estamos para ayudarte con cualquier duda, pequeña o grande

    Llámanos, escríbenos al email o por WhatsApp o inicia un chat en la web y hablamos

    chevron-down