Una variación más efectiva del marco de impulso de gradiente que incluye tanto un solucionador de modelos lineal como a los métodos de aprendizaje de árboles se denomina impulso de gradiente extremo (xgboost). Se desarrolla en el algoritmo de impulso de gradiente, que produce un conjunto de modelos de predicción débiles, a menudo árboles de decisión, como modelo de predicción. Las competiciones para el aprendizaje automático a menudo cuentan con xgboost. Es crucial comprender las causas y los mecanismos detrás de la operación exitosa de este algoritmo. Aprenderemos sobre árboles de decisión, impulso de gradiente, xgboost y su implementación en este artículo.
¿Qué son los árboles de decisión??
Un algoritmo informático llamado Algoritmo de árbol de decisión crea un árbol de decisión de un conjunto de datos suministrado. El conjunto de datos tendrá atributos, a veces conocidos como características o características, y un atributo de clase. El objetivo y el resultado son otras palabras para las características de clase. Esta característica es lo que esperamos anticipar. El algoritmo de árbol de decisión crea un modelo de árbol de decisión. Un nodo raíz, nodos de hoja y bordes constituyen el modelo de árbol de decisión. El algoritmo de árbol de decisión es recursivo, lo que significa que se llama nuevamente y continúa procesando los datos hasta que se satisfaga una condición de detención.
Ejemplo de árbol de decisión de Wikipedia
¿Qué está impulsando el gradiente??
Para los problemas de regresión y clasificación, el impulso de gradiente es una técnica de aprendizaje automático que genera un modelo en forma de un grupo de modelos de predicción débiles, a menudo árboles de decisión. Similar a otras técnicas de impulso, construye el modelo en etapas, pero las generaliza al permitir la optimización de cualquier función de pérdida. Tres procesos esenciales están involucrados en el aumento de gradiente:
- Optimizar una función de pérdida es el primer paso que debe tomarse. Se requiere una función de pérdida diferenciable. Qué tan bien un modelo de aprendizaje automático se ajusta a los datos para un fenómeno particular está determinado por su función de pérdida.
- Usar un alumno débil es el segundo paso. Un árbol de decisión sirve como el aprendiz débil en los refuerzos de gradiente. Los árboles de regresión que producen valores reales para divisiones y cuya salida se puede agregar se utilizan específicamente, lo que permite la adición de la salida de modelos sucesivos para corregir los residuos en las predicciones de la iteración previa.
- El tercer paso implica agregar muchos alumnos débiles. Uno por uno, se agregan árboles de decisión. Al agregar árboles, se utiliza un enfoque de descenso de gradiente para reducir la pérdida. El componente de gradiente de los refuerzos de gradiente es que. En el aprendizaje automático, la optimización de descenso de gradiente se emplea con frecuencia para identificar los parámetros conectados a un solo modelo que mejora una función de pérdida particular.
Que es xgboost?
Un módulo de Python para realizar el impulso de gradiente se llama xgboost (impulso de gradiente extremo). Los árboles de decisión estimulados por gradiente sirven como base. Es un algoritmo de impulso que aumenta la robustez y precisión del modelo en varias plataformas competitivas como Kaggle. Los mejores algoritmos para datos estructurados o tabulares de tamaño pequeño a mediano se basan en árboles de decisión. La construcción del modelo que usa xgboost es rápida y efectiva.
¿Dónde podemos usar xgboost??
- En caso de gran número de observaciones en los datos de entrenamiento.
- El número de características es inferior al número de observaciones.
- Cuando la métrica de rendimiento del modelo tiene en cuenta.
Implementación en Sklearn
# Importar bibliotecas requeridas
de Sklearn.DataSets Import Make_Classification
de Sklearn.model_selection import train_test_split
importar xgboost
# Crear el conjunto de datos
X, y = make_classification (n_samples = 1000, n_feature = 5, n_informative = 2, n_redundant = 0, random_state = 0, shuffle = false)
Imprimir ('Las características son', x [: 20])
Imprimir ('Las etiquetas son', y [: 20])
# dividir los datos en tren y probar
X_train, x_test, y_train, y_test = trenes_test_split (x, y, test_size = 0.2, Random_state = 0)
# Crear instancia xgboost
xgb_classifier = xgboost.XGBClassifier ()
# ajustar el modelo en los datos del tren
xgb_classifier.Fit (x_train, y_train)
# Hacer las predicciones
predicciones = xgb_classifier.Predicte (x_test)
# Impresión de 20 predicciones
imprimir ('predicciones son', predicciones [: 20])
Producción
Las características son [[-1.66853167 -1.29901346 0.2746472 -0.60362044 0.70885958]
[-2.9728827 -1.08878294 0.42281857 -3.11685659 0.64445203]
[-0.59614125 -1.37007001 -1.91374267 0.66356158 -0.1540724]
[-1.06894674 -1.17505738 1.19361168 -0.09816121 -0.88661426]
[-1.30526888 -0.96592566 -0.14735366 1.05980629 0.02624662]
[-2.18261832 -0.97011387 -0.11433516 0.74355352 0.21035937]
[-1.24797892 -1.13094525 -0.00592741 1.36606007 1.55511403]
[-1.35308792 -1.06633681 0.61332623 -0.28595915 1.49691099]
[-1.13449871 -1.27403448 1.18311956 0.71889717 -1.21607658]
[-0.38457445 -1.08840346 0.1406719 -0.74367217 -0.15901225]
[-1.0106506 -0.52017071 0.24005693 0.10015941 -0.47517511]
[-0.58310155 -1.18236446 1.27295375 -1.69613127 0.73018353]
[-0.29760388 -1.45995253 -1.85748327 0.38259814 -0.88690433]
[-0.86057581 -1.01530275 0.87830376 0.08645252 0.24770638]
[-2.47091771 -1.21696663 -1.01827933 -0.65457013 0.20721739]
[-1.33090082 -1.01316175 0.58356993 2.92909624 0.22285832]
[0.74840002 -0.91748674 0.97603753 -1.55693393 -1.32989186]
[-1.05483466 -0.9320408 -0.35549477 -1.1974277 1.48639925]
[-2.19888276 -1.17327072 -0.41021869 1.38218189 1.48678247]
[-0.68305478 -0.94253787 0.04277972 0.50179975 -0.05609947]]
Las etiquetas son [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
Las predicciones son [1 1 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0]
Conclusión
Discutimos el algoritmo xgboost en el aprendizaje automático. Esta es una implementación de la técnica de impulso de gradiente, que se usa ampliamente en las competiciones hoy en día. Vimos por qué este algoritmo funciona bien y lo que usa debajo del capó. Por último, también pasamos por la implementación de xgboost en Python.