De los datos a los algoritmos
Vamos a ver someramente cómo es el proceso previo de preparación de los datos. Es habitual enfrentarse a un proyecto de análisis predictivo con muchos datos. Muchos es muchos. La primera tarea es recopilarlos todos. Normalmente están en diferentes repositorios:
En el CRM de la empresa.
En bases de datos SQL (o noSQL).
En hojas de cálculo.
En las redes sociales.
En el programa de facturación empresarial.
En el programa de gestión de las listas de correo electrónico.
En los informes de transacciones bancarias.
En la cabeza de alguien.
Frecuentemente estos datos están “sucios”, es decir, tienen errores o discrepancias entre los diferentes campos que están en bases de datos distintas. Por ejemplo, es posible que la letra “ñ” o los acentos estén codificados en diferentes formatos en función de dónde hayamos recogido el dato. La fase de limpieza de datos comprende, entre otras tareas:
Igualar formatos
Descartar campos
Corregir errores ortográficos
Dar formato a fechas
Eliminar columnas duplicadas
Borrar registros no útiles
Con los datos “limpios” ya se puede empezar a hacer una selección de los que serán útiles para hacer las predicciones. En esta fase hay que quedarse con la “señal” y eliminar los campos que aporten “ruido”. Este trabajo se suele llamar Feature Engineering:
Descartar los campos con contenido aleatorio
Descartar los campos dependientes
Seleccionar los que son “predictores”
La transformación de los datos, que también pertenece a la llamada Feature Engineering, trata de generar nuevos campos predictores basados en los que ya se tienen. El conocimiento del dominio (del negocio, del ámbito que se está analizando) es fundamental para abordar esta fase. Esta, junto con la fase de selección de campos predictores, son las que más esfuerzo intelectual y creativo necesitan, ya que no sólo hay que conocer el ámbito de estudio, sino que es necesario conocer con cierta profundidad cómo funcionan los algoritmos predictivos, cómo interpretan internamente los datos y cómo se buscan las relaciones entre ellos.
A modo de ejemplo, se puede pensar que en un proyecto de predicción de baja de clientes es suficiente con disponer de la fecha de alta y la de baja. Podríamos interpretar que el algoritmo, analizando estos dos datos, es capaz de “deducir” la antigüedad del cliente. Pero no es así. La transformación, en este caso muy sencilla, sería añadir un nuevo campo que fuera la resta de las dos fechas y transformarlo en número de días (o meses, o años, en función de que lo consideremos mejor). Una pequeña modificación como esta puede mejorar enormemente la capacidad predictiva del sistema.