Las problemáticas que podemos encontrar durante el desarrollo de proyectos de Machine Learning son diversas. En este artículo veremos esos obstáculos, desde cómo tratar conjuntos de datos muy dispersos o concentrados, a problemas que pueden surgirnos en el entorno Big Data. Se verán, también, ejemplos de estos problemas y diferentes soluciones a los mismos que tenemos a nuestro alcance.
Por Carlos García, I+D Python Developer en OpenSistemas
Definir el problema
A la hora de desarrollar una solución basada en Machine Learning deberemos tener en cuenta algunos aspectos fundamentales. Por ejemplo, tenemos que conocer con exactitud los requisitos que debe cumplir nuestra solución, ya que de esto dependerá el enfoque del algoritmo y la manera de llevar a cabo el desarrollo del mismo.
En algunas ocasiones puede que este punto no esté del todo claro, y vaya forjándose durante el desarrollo del proyecto. Es entonces cuando cobra vital importancia la metodología de trabajo bajo la que se desarrolle la solución.
Fases de Desarrollo del Modelo
En este punto de la sesión veremos las diferentes fases que componen el desarrollo de un modelo predictivo y las peculiaridades de cada fase. Es de especial importancia la fase de Feature Extraction, en la que se trabajará en la limpieza de los datos y preparación de los mismos, y se realizarán diferentes tipos de análisis sobre estos para obtener información de gran importancia a la hora de elaborar el modelo. Además, durante esta fase podremos conseguir conclusiones sobre la muestra de datos con la que estamos trabajando, pudiendo valorar si esta es válida o no para posteriores fases del desarrollo.
Problemáticas en los datos
Durante este punto veremos más en profundidad los inconvenientes que podemos encontrarnos durante la fase de Feature Extraction que hemos mencionado anteriormente. Como ya sabemos, los datos son el factor más importante en el ámbito del Machine Learning, y, a su vez, pueden ser el punto más conflictivo a la hora de analizarlos.
Algunos de los inconvenientes que veremos son, por ejemplo, cómo lidiar con un problema de medida de distancias entre los datos, o cómo debemos de disponer de los datos para poder extraer de ellos la información que queremos.
Un ejemplo de cómo disponer de los datos de forma correcta, por ejemplo, sería cómo conseguir que una de las variables de nuestro modelo que representa el tiempo que transcurre, tal vez, en una serie temporal, se muestre como una variable cíclica, ya que por sí sola la variable solo mostrará la linealidad del tiempo que transcurre, como podemos observar en la imagen.
Pero en ningún momento será capaz de representar el tiempo como algo cíclico, como se puede observar en la siguiente imagen.
Técnicas de encoding
En este apartado veremos algunas de las técnicas que tenemos a nuestro alcance para solucionar algunos de los problemas comentados en los apartados anteriores.
Veremos técnicas como la asignación por percentiles, distintos escaladores, o la generación de funciones paramétricas. Analizaremos las ventajas y desventajas de cada método, así como en qué situaciones serán más convenientes unos métodos que otros y los costes que requiere implementar cada uno.
Problemáticas en los entornos distribuidos
Una vez que en los puntos anteriores hemos tratado los asuntos correspondientes al análisis de datos y al desarrollo del modelo predictivo, en este punto veremos las diferentes dificultades que podemos encontrarnos al trabajar en un entorno distribuido como, por ejemplo, HDFS.
A la hora de llevar a cabo el desarrollo de un proyecto será de vital importancia ser capaces de obtener los datos necesarios para el algoritmo. Veremos cómo podemos llevar a cabo estas acciones de la manera más eficiente en este tipo de sistemas.
Además, también veremos cómo podemos poner en producción el modelo que hemos desarrollado y cómo lidiar con la escalabilidad del modelo.
No nos olvidaremos tampoco en este punto de la importancia que tendrá el apartado de la gestión de recursos en este tipo de entornos, lo cual puede ser un gran inconveniente a la hora de impulsar desarrollos.
Sistema de reentrenamiento y casos particulares
En este último punto veremos cómo proceder para llevar a cabo el reentrenamiento de los algoritmos que pongamos en producción. Este apartado es de vital importancia, ya que de ello dependerá que el modelo pueda seguir haciendo predicciones con un determinado nivel de calidad o aceptación, para conocer cuándo estas acciones son requeridas, ya que pueden tener un coste adicional al proyecto. Podremos implementar un sistema de alertas basado en métricas concretas sobre el modelo para avisarnos de cuándo un reentrenamiento del mismo sea necesario.
También veremos en este punto cómo el reentrenamiento del modelo puede afectar al ajuste de los hiperparámetros del mismo requiriendo así un nuevo calibrado del modelo.
Como aporte adicional, en este punto también comentaremos un tema que podemos encontrar en la actualidad, debido a la situación excepcional que estamos viviendo por el SARS-Cov-2. Estamos pudiendo observar cómo los modelos predictivos de Machine Learning pueden estar viéndose afectados, ya que los históricos de datos que se utilizan para su entrenamiento no contemplan esta situación actual, lo que puede suponer un problema a la hora de realizar predicciones, así como a la validez de las mismas. Por ello, veremos diferentes enfoques para intentar minimizar este factor.
Sobre OpenSistemas
OpenSistemas es una compañía especializada en el desarrollo de proyectos y productos globales altamente innovadores relacionados con la gestión, transformación, análisis, almacenamiento y visualización de datos gracias a sus áreas de conocimiento Data Intelligence, Visual Knowledge, Content Management y Cloud integration, ayudando a sus clientes a potenciar el valor estratégico de su información.
OpenSistemas fundamenta esta capacidad en su experiencia de más de una década ofreciendo soporte, soluciones y servicios relacionados con entornos Cloud, Education y Content Management en grandes cuentas a nivel internacional y en la pasión de su equipo por las tecnologías Open Source, siempre bajo un enfoque de vocación de servicio al cliente y de compromiso con la comunidad. Más info en www.opensistemas.com.
Si te interesa saber más sobre este sector, inscríbete en el webinar Big Data Skills 4 New Digital Challenges, que tendrá lugar el miércoles 24 de junio, de 18:00h hasta las 19:30h.