Las últimas tendencias de IA presentadas por expertos
Obtenga insights curados sobre las noticias más importantes e intrigantes de la IA. Suscríbase a nuestro boletín semanal Think. Consulte la Declaración de privacidad de IBM .
XGBoost (eXtreme Gradient Boosting) es una biblioteca de machine learning distribuida de código abierto que utiliza árboles de decisión impulsados por gradientes, un algoritmo de aprendizaje boosting que utiliza el descenso de gradiente. Es conocido por su velocidad, eficiencia y capacidad de escalar bien con grandes conjuntos de datos.
Desarrollado por Tianqi Chen de la Universidad de Washington, XGBoost es una implementación avanzada de gradient boosting con el mismo marco general; es decir, combina árboles de aprendices débiles en aprendices fuertes sumando residuos. La biblioteca está disponible para C++, Python, R, Java, Scala y Julia.1
Los árboles de decisión se utilizan para tareas de clasificación o regresión en machine learning. Emplean una estructura de árbol jerárquico en la que un nodo interno representa una característica, la rama representa una regla de decisión y cada nodo hoja representa el resultado del conjunto de datos.
Debido a que los árboles de decisión son propensos al sobreajuste, los métodos de conjunto, como el boosting, a menudo se pueden usar para crear modelos más robustos. El boosting combina múltiples árboles débiles individuales, es decir, modelos que funcionan ligeramente mejor que el azar, para formar un aprendiz fuerte. A cada aprendiz débil se le entrena secuencialmente para corregir los errores cometidos por los modelos anteriores. Luego de cientos de iteraciones, los aprendices débiles se convierten en aprendices fuertes.
Los algoritmos de bosques aleatorios y de boosting son técnicas populares de aprendizaje por conjuntos que emplean árboles de aprendizaje individuales para mejorar el rendimiento predictivo. Los bosques aleatorios se basan en el concepto de bagging (agregación de bootstrapping) y entrenan cada árbol de forma independiente para combinar sus predicciones, mientras que los algoritmos de boosting emplean un enfoque aditivo en el que los aprendices débiles se capacitan secuencialmente para corregir los errores de los modelos anteriores.
Los árboles de decisión impulsados por gradientes son un tipo de algoritmo de boosting que emplea el descenso por gradiente. Al igual que otras metodologías de boosting, el boosting de gradientes comienza con un aprendiz débil para hacer predicciones. El primer árbol de decisión en el boosting de gradientes se denomina aprendiz base. A continuación, se crean nuevos árboles de forma aditiva en función de los errores del aprendiz base. Luego, el algoritmo calcula los residuos de las predicciones de cada árbol para determinar a qué distancia estaban las predicciones del modelo de la realidad. Los valores residuales son la diferencia entre los valores previstos y reales del modelo. Los residuos se agregan para puntuar el modelo con una función de pérdida.
En machine learning, las funciones de pérdida se emplean para medir el rendimiento de un modelo. El gradiente en los árboles de decisión potenciados por gradientes se refiere al descenso del gradiente. El descenso del gradiente se emplea para minimizar la pérdida (es decir, para mejorar el rendimiento del modelo) cuando entrenamos nuevos modelos. El descenso del gradiente es un algoritmo de optimización popular que se emplea para minimizar la función de pérdida en problemas de machine learning. Algunos ejemplos de funciones de pérdida incluyen el error cuadrático medio o el error absoluto medio para problemas de regresión, la pérdida de entropía cruzada para problemas de clasificación o se pueden desarrollar funciones de pérdida personalizadas para un caso de uso y un conjunto de datos específicos.
A continuación se muestra una discusión de algunas de las características de XGBoost en Python que lo hacen destacar en comparación con el paquete normal de impulso de gradiente en scikit-learn2:
Obtenga insights curados sobre las noticias más importantes e intrigantes de la IA. Suscríbase a nuestro boletín semanal Think. Consulte la Declaración de privacidad de IBM .
En esta sección, repasaremos cómo usar el paquete XGBoost, cómo seleccionar hiperparámetros para el amplificador de árbol XGBoost, cómo XGBoost se compara con otras implementaciones de impulso y algunos de sus casos de uso.
Suponiendo que ya realizó un análisis exploratorio de sus datos, continúe separando sus datos entre un conjunto de datos de entrenamiento y un conjunto de datos de prueba. A continuación, convierta sus datos al formato DMatrix que espera XGBoost3. DMatrix es la estructura de datos interna de XGBoost optimizada para la eficiencia de la memoria y la velocidad de entrenamiento4.
A continuación, instancie un modelo XGBoost y, en función de su caso de uso, seleccione qué función objetivo desea emplear mediante el hiperparámetro "objeto". Por ejemplo, si tiene una tarea de clasificación multiclase, debe establecer el objetivo en "multi:softmax"5. Alternativamente, si tiene un problema de clasificación binaria, puede emplear el objetivo de regresión "binary:logistic". Ahora puede emplear su conjunto de entrenamiento para capacitar el modelo y predecir clasificaciones para el conjunto de datos que se reservó como conjunto de prueba. Evalúe el rendimiento del modelo comparando los valores previstos con los valores reales del conjunto de pruebas. Puede emplear métricas como la exactitud, la precisión, la recuperación o el puntaje f-1 para evaluar su modelo. También puede visualizar sus verdaderos positivos, verdaderos negativos, falsos positivos y falsos negativos empleando una matriz de confusión.
A continuación, es posible que desee iterar a través de una combinación de hiperparámetros para ayudar a mejorar el rendimiento de su modelo. El ajuste de hiperparámetros es el proceso de optimización para los hiperparámetros de un algoritmo de machine learning. Los mejores hiperparámetros se pueden encontrar mediante métodos de búsqueda en cuadrícula y validación cruzada, que iterarán a través de un diccionario de posibles opciones de ajuste de hiperparámetros.
A continuación se incluye una explicación de algunos de los hiperparámetros disponibles para ajustar los árboles potenciados por gradiente en XGBoost:
XGBoost es uno de los muchos algoritmos de impulso de código abierto disponibles. En esta sección, compararemos XGBoost con otros tres frameworks de impulso.
AdaBoost es uno de los primeros algoritmos de impulso inventado por Yoav Freund y Robert Schapire en 19957. En AdaBoost, se hace más énfasis en las predicciones incorrectas a través de un sistema de pesos que afectan a los puntos de datos más difíciles de predecir de manera más significativa. Primero, a cada punto de datos del conjunto de datos se le asigna un peso específico. A medida que los alumnos débiles predicen correctamente un ejemplo, el peso del ejemplo se reduce. Pero si los alumnos se equivocan en un ejemplo, el peso de ese punto de datos aumenta. A medida que se crean nuevos árboles, sus pesos se basan en las clasificaciones erróneas de los árboles aprendidos anteriores. A medida que aumenta el número de alumnos, las muestras que son fáciles de predecir se utilizarán menos para los futuros alumnos, mientras que los puntos de datos que son más difíciles de predecir se ponderarán de manera más prominente. El impulso de gradiente y XGBoost tienden a ser alternativas más fuertes a AdaBoost debido a su precisión y velocidad.
CatBoost es otro marco de impulso de gradientes. Desarrollado por Yandex en 2017, se especializa en el manejo de características categóricas sin necesidad de preprocesamiento y, en general, funciona bien de forma inmediata sin necesidad de realizar un ajuste extenso de hiperparámetros8. Al igual que XGBoost, CatBoost tiene soporte incorporado para gestionar datos faltantes. CatBoost es especialmente útil para conjuntos de datos con muchas características categóricas. Según Yandex, el framework se emplea para búsquedas, sistemas de recomendación, asistentes personales, autos autónomos, predicción meteorológica y otras tareas.
LightGBM (Light Gradient Boosting Machine) es el último algoritmo de impulso de gradiente que revisaremos. LightGBM fue desarrollado por Microsoft y lanzado por primera vez en 20169. Mientras que la mayoría de los algoritmos de aprendizaje de Decision Trees hacen crecer los árboles en profundidad, LightGBM emplea una estrategia de crecimiento de árboles por hojas10. Al igual que XGBoost, LightGBM exhibe una rápida velocidad y precisión en el entrenamiento de modelos y funciona bien con grandes conjuntos de datos.
XGBoost y los árboles de decisión impulsados por gradiente se emplean en una variedad de aplicaciones de ciencia de datos, que incluyen:
Entrene, valide, ajuste y despliegue IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de próxima generación para creadores de IA. Diseñe aplicaciones de IA en menos tiempo y con menos datos.
Ponga la IA a trabajar en su negocio con la experiencia en IA líder en la industria y la cartera de soluciones de IBM a su lado.
Reinvente los flujos de trabajo y las operaciones críticas añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.