Herramientas de auto machine learning de código abierto
La creciente complejidad de los modelos de aprendizaje automático y la necesidad de optimizar su rendimiento lleva años impulsando el desarrollo del AutoML (Automated Machine Learning). Esta disciplina busca automatizar tareas clave en el ciclo de vida del desarrollo de modelos, como la selección de algoritmos, el procesamiento de datos y la optimización de hiperparámetros.
El AutoML permite a los usuarios desarrollar modelos de manera más sencilla y rápida. Se trata de un enfoque que facilita el acceso a la disciplina, haciéndola accesible a los profesionales con menos experiencia en programación y acelerando los procesos para aquellos que cuentan con más experiencia. Así, para un usuario con conocimientos profundos de programación, el AutoML también puede ser interesante. Gracias al auto machine learning, este usuario podría aplicar automáticamente las configuraciones técnicas necesarias, como definir variables o interpretar los resultados de manera más ágil.
En este post, abordaremos las claves de estos procesos de automatización y recopilaremos una serie de herramientas de código abierto gratuitas y/o con modelo freemium, que te pueden servir para profundizar en el AutoML.
Aprende a crear tu propio modelado de aprendizaje automático
Como se indicaba anteriormente, gracias a la automatización, el proceso de entrenamiento y evaluación de modelos en base a herramientas de AutoML es más rápido que en un proceso de machine learning (ML) habitual, si bien las etapas para la creación de modelos son similares.
En general, los componentes clave del AutoML son:
- Preprocesamiento de datos: automatiza tareas como la limpieza, transformación y selección de características de los datos.
- Selección de modelos: examina una variedad de algoritmos de machine learning y elige el más adecuado para la tarea específica.
- Optimización de hiperparámetros: ajusta automáticamente los parámetros de los modelos para mejorar su rendimiento.
- Evaluación de modelos: proporciona métricas de rendimiento y valida modelos utilizando técnicas como la validación cruzada.
- Implementación y mantenimiento: facilita la implementación de modelos en producción y, en algunos casos, su actualización.
Todos estos elementos ofrecen, en su conjunto, una serie de ventajas como las que vemos en la imagen
Estas imágenes pertenecen a Datos.gob.es
Figura 1. Fuente: elaboración propia.
Ejemplos de herramientas de AutoML
A pesar que el AutoML puede llegar a ser muy útil, es importante destacar algunas de sus limitaciones como el riesgo de overfitting (cuando el modelo se ajusta demasiado a los datos de entrenamiento y no generaliza bien el conocimiento), la pérdida de control sobre el proceso de modelado o la interpretabilidad de ciertos resultados.
No obstante, a medida que el AutoML continúa ganando terreno en el ámbito del aprendizaje automático, diversas herramientas han surgido para facilitar su implementación y uso. A continuación, exploraremos algunas de las herramientas de AutoML de código abierto más destacadas:
H2O.ai, versátil y escalable, ideal para empresas
H2O.ai es una plataforma de AutoML que incluye modelos de deep learning y machine learning como XGBoost (biblioteca de machine learning diseñada para mejorar la eficiencia de los modelos) y una interfaz de usuario gráfica. Esta herramienta se utiliza en proyectos a gran escala y permite un alto nivel de personalización. H2O.ai incluye opciones para modelos de clasificación, regresión y series temporales, y se destaca por su capacidad para manejar grandes volúmenes de datos.
Aunque H2O facilita el acceso al machine learning a no expertos, sí son necesarios algunos conocimientos y experiencia en ciencia de datos para sacarle el máximo partido a la herramienta. Además, permite realizar un gran número de tareas relacionadas con el modelado que normalmente requerirían muchas líneas de código, facilitando la tarea del analista de datos. H2O ofrece un modelo freemium y también cuenta con una versión comunitaria de código abierto.
TPOT, basado en algoritmos genéticos, buena opción para experimentar
TPOT (Tree-based Pipeline Optimization Tool) es una herramienta gratuita y de código abierto para el aprendizaje automático con Python que optimiza los procesos mediante programación genética.
Esta solución busca la mejor combinación de preprocesamiento de datos y modelos de aprendizaje automático para un conjunto de datos específico. Para ello, utiliza algoritmos genéticos que le permiten explorar y optimizar diferentes pipelines, transformación de datos y modelos. Se trata de una opción más experimental que puede resultar menos intuitiva, pero ofrece soluciones innovadoras.
Además, TPOT está construido sobre la popular biblioteca scikit-learn, así que los modelos generados por TPOT se pueden utilizar y ajustar con las mismas técnicas que se usarían en scikit-learn.
Auto-sklearn, accesible para usuarios de scikit-learn y eficiente en problemas estructurados
Como TPOT, Auto-sklearn está basada en scikit-learn y sirve para automatizar la selección de algoritmos y la optimización de hiperparámetros en modelos de aprendizaje automático en Python.
Además de ser una opción gratuita y de código abierto, incluye técnicas para manejar datos ausentes, una funcionalidad muy útil a la hora de trabajar con conjuntos de datos del mundo real. Por otro lado, Auto-sklearn ofrece una API sencilla y fácil de usar, lo que permite a los usuarios iniciar el proceso de modelado con pocas líneas de código.
BigML, integración mediante API REST y modelos de precios flexibles
BigML es una plataforma de aprendizaje automático consumible, programable y escalable que, como el resto de herramientas mencionadas, facilita la resolución y automatización de tareas de clasificación, regresión, pronóstico de series de tiempo, análisis de clústeres, detección de anomalías, descubrimiento de asociaciones y modelado de temas. Cuenta con una interfaz intuitiva y un enfoque hacia la visualización que facilita la creación y gestión de modelos de ML, incluso para usuarios con pocas nociones de programación.
Además, BigML tiene una API REST que posibilita la integración con diversas aplicaciones y lenguajes, y es escalable para manejar grandes volúmenes de datos. Por otro lado, ofrece un modelo de precios flexible basado en el uso, y cuenta con una comunidad activa que actualiza regularmente los recursos didácticos disponibles.
La siguiente tabla muestra una comparativa entre estas herramientas:
| H2O.ai | TPOT | Auto-sklearn | BigML |
Uso | Para proyectos a gran escala. | Para experimentar con algoritmos genéticos y optimizar pipelines. | Para usuarios de scikit-learn que desean automatizar el proceso de selección de modelos y para tareas estructuradas. | Para crear y desplegar modelos de ML de forma accesible y sencilla. |
Dificultad de configuración | Sencilla, con opciones avanzadas. | Dificultad media. Una opción más técnica por los algoritmos genéticos. | Dificultad media. Precisa una configuración técnica, pero es fácil para usuarios de scikit-learn. | Sencilla. Interfaz intuitiva con opciones de personalización. |
Facilidad de uso | Fácil de usar con los lenguajes de programación más habituales. Tiene interfaz gráfica y APIs para R y Python. | Fácil de usar, pero requiere conocimientos de Python. | Fácil de usar, pero requiere conocimientos previos. Opción sencilla para usuarios de scikit-learn. | Fácil de usar, enfocada a la visualización, no requiere grandes conocimientos de programación. |
Escalabilidad | Escalable a grandes volúmenes de datos. | Enfocada en conjuntos de datos pequeños y medianos. Menos eficiente en datasets grandes. | Efectivo en conjuntos de datos tamaño pequeño y medio. | Escalable para diferentes tamaños de datasets. |
Interoperabilidad | Compatible con varias bibliotecas y lenguajes, como Java, Scala, Python y R. | Basado en Python. | Basado en Python integrando scikit-learn. | Compatible con API REST y varios lenguajes. |
Comunidad | Amplia y activa que comparte documentación de referencia. | Menos extensa, pero en proceso de crecimiento. | Cuenta con el soporte de la comunidad scikit-learn. | Comunidad activa y soporte disponible. |
Desventajas | Aunque es versátil, su personalización avanzada podría ser desafiante para principiantes sin experiencia técnica. | Puede ser menos eficiente en grandes conjuntos de datos debido a la naturaleza intensiva de los algoritmos genéticos. | Su rendimiento está optimizado para tareas estructuradas (datos estructurados), lo que podría limitar su uso en otros tipos de problemas. | Su personalización avanzada podría ser desafiante para principiantes sin experiencia técnica. |
Figura 2. Tabla comparativa de herramientas de autoML. Fuente:elaboración propia.
Cada herramienta tiene su propia propuesta de valor, y la elección dependerá de las necesidades específicas y del entorno en el que trabaje el usuario.
Estos son algunos ejemplos de herramientas gratuitas y de código abierto que puedes explorar para adentrarte en el AutoML. Te invitamos a compartir tu experiencia con estas u otras herramientas en la sección de comentarios.
Si estás buscando herramientas para ayudarte en el procesamiento de datos, desde datos.gob.es ponemos a tu disposición el informe "Herramientas de procesado y visualización de datos", así como los siguientes artículos monográficos:
- Etiquetas:
- Blog
- herramientas
- IA
- machine learning
Documentos descargables
- No hay ficheros adjuntos