BI & Machine Learning, ¿amigos con derecho a roce?

Llevo un par de meses con mi primer proyecto real de Machine Learning, en concreto un algoritmo de aprendizaje supervisado multivariable, (regresión logística o red neuronal). La curva de aprendizaje es más plana de lo esperado,  (disclaimer 😊 ), aunque justo ahora se ven pájaros que presagian que la tierra está próxima.

Para profanos, de lo que se trata es de proporcionar al sistema información histórica con los resultados que se produjeron realmente para que éste genere un algoritmo que permita predecir lo que va a pasar si le proporcionamos los datos a fecha de hoy. Hay dos claves para que este tipo de algoritmos funcione:

1) Proporcionarle cuantos más datos mejor (por supuesto de la mayor calidad).
Con más información, si esta es relevante, aumenta el grado de precisión de las predicciones.

2) La preparación correcta de estos datos (para mi esta parte es fundamental). 
El uso de datos "en bruto" no resulta útil en este tipo de modelos, al menos en este caso concreto. Hay que saber o intuir que hay detrás y prepararlos en consecuencia para conseguir predicciones de calidad. (En mi caso, p.e. hay variables que requieren información de lo que ha pasado en los 6 últimos meses mientras que otras responden mejor a lo acaecido el último mes).

Esto supone una carga de trabajo de preparación y pruebas enorme: ¿cómo saber si es mejor 6 meses atrás que 4? ¿cómo saberlo para todas la variables?¿cómo obtener los datos para cada uno de los casos?
El proyecto no es de Big Data, (aprox. 500.000 datos), y aunque es posible que vaya creciendo en función de las conclusiones que se vayan obteniendo, en ningún caso llegará a ser "big", En este contexto "No-Big Data" y "cambios constantes", el BI se ha convertido en un aliado fundamental:

Se dejan abiertas las variables del proceso sobre las que hay dudas, se incorporan al proceso de ETL de las diferentes fuentes de datos, y se obtienen los datos necesarios en segundos, ahorrando una cantidad enorme de tiempo en la preparación de los datos.
Además, cuando el modelo sugiere cambios en la estructura de los datos, es muy sencillo adaptarlos y obtenerlos de la forma apropiada.

(Nota: estoy usando Qlikview, que conozco bien, y me ha resultado muy sencillo, RStudio, paquete "caret", y también la función glm, y BigML para contrastar resultados).

Variables creadas para permitir cambios en el proceso ETL

Comentarios