Así es, muchas veces los datos presentan patologías; estás pueden ser de dos tipos:
- de contenido: entradas duplicadas, datos atípicos, valores nulos, o
- de formato: extraño uso de mayúsculas, o espacios de más.
En esta entrada veremos la amplia gama de detalles de contenido que aparecen en las bases de datos de la vida real, y de qué manera se pueden abordar esos problemitas. Todo esto forma parte del pre-procesamiento de datos.
Sin duda manipular cadenas de texto puede parecer tedioso a primera vista, pero es un arma muy poderosa para un científico de datos; con esta manipulación se atacan problemas de formato, y se crean scripts que permitan obtener la información necesaria de los datos crudos.
A veces uno se imagina los datos acomodados en tablas, ahí están los datos sólo esperando que uno saque gráficas, regresiones, clusters… sin embargo muchas veces los datos tienen diferentes formatos, y hay que extraer los que puedan ayudar a encontrar el “panorama tan anhelado”
Para identificar patologías se pueden recurrir a buenas prácticas como mirar directamente a los datos, ver cómo están conformados, qué tipos de datos hay; si existe documentación disponible, es recomendable leerla; tener a la mano una lista de preguntas que hacer sobre la base de datos: ¿qué contiene cada columna?, ¿qué identificadores se encuentran en cada tabla? Por último, se recomienda rectificar varias veces que la información que tenemos de los datos coincida con lo que estamos obteniendo.
Las patologías de contenido son:
- Entradas duplicadas. A veces las entradas dobles son importantes de alguna manera en la vida real. El procedimiento en este caso es hacer otra columna que contenga sólo las entradas únicas.
- Entradas múltiples para una sola entidad. Esto sucede de manera más frecuente cuando es una columna la que cambia constantemente; puede suceder también que haya diferentes procesos unidos a una sola forma de identificarlo, a veces la información sobre cada proceso está en alguna otra columna o tabla.
- Entradas faltantes. Suceden porque hubo alguna característica en las entidades que sacó los valores del conjunto de datos, o porque nunca fue recolectada esa parte de la información.
- Valores NULL. Estos valores generalmente dicen que no conocemos una parte particular de la información sobre una entidad y no pueden ser procesados por muchos algoritmos a la hora de hacer el análisis, en este caso es necesario cambiar esto valores por alguna aproximación adecuada, quizá la media de los valores no nulos. Otras veces es una característica importante y aporta información sobre los procesos descritos en las tablas, tal vez no hubo tales procesos.
- Datos atípicos grandes. Los atípicos a veces están porque realmente existieron, pero depende mucho del concepto. En el contexto de tráfico en una página web, un dato atípico puede significar un ataque de bots. Otras veces se trata como datos inexistentes. A veces los sistemas de almacenamiento no permiten tener valores NULL y lo que ponen es valores arbitrarios
- Datos expirados. En las bases de datos, cuando una entrada es registrada, también queda anotado el timestamp, es decir, el momento preciso en que se captura la información, cuando se actualiza la entrada no se sustituye sino se crea otra con el tiempo adecuado. Entonces hay bases de datos con mucha información de sobra, a menos que se quiera estudiar la historia de la misma.
- Entradas artificiales. A veces se crean escenarios artificiales para hacer pruebas.
- Espacios irregulares. Muchos algoritmos que procesan datos asumen que los datos se recuperan en un intervalo de tiempo constante por lo que se identifica un problema cuando los datos no se presentan con este patrón. En caso de que hagan falta valores suele hacerse una interpolación para recuperar los datos inexistentes.
Limpiar los datos es una parte de la ciencia de datos en donde más código se desarrolla. Es una parte donde usarás mucho la creatividad y será necesario experimentar; es el momento para entender los datos, y seleccionar los que te ayudaran a sacar las mejores conclusiones según lo que se busca.