Para poder tener un modelo de inteligencia artificial correctamente entrenado se necesitan varias cosas, y una de las más importantes es la calidad de los datos con los que se entrena. Éste proceso depende directamente de un dataset relevante para la temática de tu modelo. Pero esto no se queda solamente en recabar datos, es fundamental que éste dataset esté limpio y bien estructurado.
¿Qué es depurar un dataset?
Depurar un dataset significa, limpiarlo, refinarlo y transformarlo para que el entrenamiento de la IA sea óptimo. Esto significa eliminar cualquier elemento que no sea útil o que pueda introducir errores (por ejemplo cuando hay caracteres extraños), aquí hay unos ejemplos de lo que sería depurar un dataset:
- Eliminar caracteres irrelevantes o "ruido" (como etiquetas HTML si estás extrayendo texto de webs).
- Corregir errores tipográficos.
- Eliminar información irrelevante y/o duplicada.
- Asegurar un formato consistente para todos los datos.
Cuanto más se depure un dataset y mejor formado esté, más rápido, eficiente y preciso va a acabar siendo el modelo final.
A continuación se puede ver un ejemplo practico sobre datos que haría falta depurar antes de usarlos para construir el dataset:
Nombre Completo | País | Interés Principal | Fecha Registro | |
---|---|---|---|---|
Ana L.pez | [email protected] | España | IA | 01/05/2023 |
Juan Pérez | juanperez@demo. | ES | Machine Learning | 03-05-2023 |
[email protected] | IA | 2023/05/05 | ||
Sofia | [email protected] | México | Data Science | 10/05/2023 |
Juan Pérez | juanperez@demo. | ES | Machine Learning | 03-05-2023 |
Pedro "El Pro" | [email protected] | España | ia | 12/MAY/2023 |
En ésta tabla encontramos varios problemas, por ejemplo, en la tercera fila falta el nombre y el país, después en la primera y última fila hay problemas de datos con ruido, por caracteres innecesarios, como el . en el nombre de "Ana L.pez".
Entonces para poder usar estos datos deberíamos corregir los errores tipográficos, unificar aquellas columnas que tengan distintos formatos en una misma columna (como el interés principal y la fecha de registro), además de eliminar registros duplicados y decidir que hacer con los datos incompletos.
¿Qué problemas suelen ocurrir a la hora de formar datasets?
A la hora de construir un dataset, es bastante habitual encontrarse con problemas como:
- Datos incompletos y/o incoherentes
- Datos con mucho ruido (muchos caracteres que no son útiles)
- Datos que no sirvan por x razón (datos sesgados)
¿Cómo preparar un dataset correctamente?
Lo primero y más importante es describir exactamente el propósito de tu modelo, para así poder ir directamente a buscar los datos necesarios. Después hace falta tener alternativas una vez tengas una fuente de datos, ya sea para tener más datos disponibles, o para cambiar la fuente por encontrarte algún problema, como los descritos anteriormente.
Antes de depurar los datos tienes que entender los datos que tienes, es decir, de qué tipo son, cómo está formado, si hay patrones evidentes entre los datos. Y una vez se haya identificado esa estructura correctamente se pueden aplicar las técnicas de limpieza para solucionar los problemas descritos anteriormente.
¿Se podrían usar datos sin filtrar ni depurar?
No es recomendable. Hay que entender que cuanto menos depurado y menos filtro esté nuestro dataset, hay más posibilidades de que el entrenamiento del modelo sea una perdida de tiempo y recursos, ya que va a tender a alucinar y/o directamente inventarse las respuestas, ya que no tiene nada en la memoria sobre ese tema.
¿Qué pasos se podrían seguir para formar un buen dataset?
El paso más importante es tener una fuente de datos fiable, es decir, una fuente de datos en la cual, la gran mayoría de su contenido vaya a ser útil casi hasta sin filtrar. Después de eso, filtrarlos correctamente teniendo en cuenta todas las variables que haya. Éste un gran paso, ya que si no tienes en cuenta todas las variables de ruido se te pueden colar cosas innecesarias en el dataset. Y lo que queremos es seleccionar lo que realmente vaya a aportar valor.
También es útil investigar si alguien ha desarrollado algo similar, aunque no sea exactamente sobre el mismo tema. Esto puede proporcionar una base sólida por la que empezar a construir tus propios filtros, ya que casi siempre hay elementos que se pueden reutilizar y/o adaptar según las necesidades de cada uno.
Además puede ser bastante importante tener todo documentado, sobre todo si es la primera vez, para que si se vuelve a hacer un proyecto parecido se sepa que pasos hay que tomar, y cuales otros se pueden descartar casi recién empezado el proyecto.
Seguir todos estos pasos asegura que la calidad de los datos que alimentan a tu modelo de IA sean significativamente superiores, resultando en mejores modelos y más precisos.
¿Qué librerías se pueden usar a la hora de filtrar y depurar datos?
Todas las librerías a las que voy a hacer referencia son en Python, y al lado de su nombre adjuntaré una pequeña descripción:
- Pandas: es fundamental para la manipulación y análisis de datos ya que permite cargar datos de muchas fuentes y realizar diversas funciones para la depuración de datos.
- Re (Regex): Es la librería de expresiones regulares de Python, fundamental para buscar patrones de texto, limpiar cadenas de caracteres, etc.
- JSON: Fundamental para trabajar con archivos en formato JSON.
- Langdetect: Útil si necesitas identificar el idioma de un texto.
- Requests: Para realizar llamadas a APIs y obtener datos de fuentes externas online.
Conclusión
En resumen, la calidad del dataset de entrenamiento es un factor muy determinante en el rendimiento final de un modelo de inteligencia artificial. No basta solo con recolectar grandes volúmenes de datos, es imprescindible filtrarlos, depurarlos y estructurarlos con cuidado. Un dataset bien preparado no solamente ahorra tiempo y recursos, sino que además reduce problemas durante las fases de entrenamiento y mejora notablemente el rendimiento y los resultados del modelo.