Entrene modelos de gradient boosting para tareas de clasificación y regresión mediante el algoritmo XGBoost.
PAI amplía la biblioteca de código abierto XGBoost con compatibilidad para cómputo distribuido e integración con la plataforma.
Recursos de cómputo
Recursos de cómputo compatibles:
MaxCompute
Flink
Deep Learning Containers (DLC)
Formatos de datos
Formatos de entrada aceptados: Table o LibSVM. Especifique el formato en la pestaña Field Setting: use featureCols para el formato Table o vectorCol para el formato LibSVM (estas opciones son mutuamente excluyentes).
Formato Table
Cada fila representa una instancia de entrenamiento. Las columnas almacenan los valores de las características y la etiqueta.
|
f0 |
f1 |
label |
|
0.1 |
1 |
0 |
|
0.9 |
2 |
1 |
Formato LibSVM
Cada fila contiene pares dispersos de característica-valor en formato index:value. Ejemplo:
2:1 9:1 10:1 20:1 29:1 33:1 35:1 39:1 40:1 52:1 57:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 104:1 116:1 123:1
0:1 9:1 18:1 20:1 23:1 33:1 35:1 38:1 41:1 52:1 55:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 105:1 115:1 121:1
2:1 8:1 18:1 20:1 29:1 33:1 35:1 39:1 41:1 52:1 57:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 104:1 116:1 123:1
2:1 9:1 13:1 21:1 28:1 33:1 36:1 38:1 40:1 53:1 57:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 97:1 105:1 113:1 119:1
0:1 9:1 18:1 20:1 22:1 33:1 35:1 38:1 44:1 52:1 55:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 104:1 115:1 121:1
0:1 8:1 18:1 20:1 23:1 33:1 35:1 38:1 41:1 52:1 55:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 105:1 116:1 121:1
Configuración
Configure el componente mediante tres pestañas:
Field Setting: Estructura de los datos de entrada y ubicación de almacenamiento del modelo.
Parameter Setting: Hiperparámetros del algoritmo de entrenamiento XGBoost.
Execution Tuning: Recursos para el entrenamiento distribuido.
Field Setting
|
Parámetro |
Tipo |
Descripción |
|
labelCol |
String |
Nombre de la columna de etiqueta. |
|
featureCols |
String array |
Columnas de características en formato Table. Esta opción es mutuamente excluyente con vectorCol. Requiere datos de entrada en formato Table. |
|
vectorCol |
String |
Nombre de la columna vectorial en formato LibSVM. Esta opción es mutuamente excluyente con featureCols. Requiere datos de entrada en formato LibSVM. |
|
weightCol |
String |
Nombre de la columna de peso. |
|
set the model file path |
String |
Ruta del bucket de OSS para almacenar el modelo entrenado. |
Parameter Setting
Hiperparámetros estándar de XGBoost.
Objetivo de entrenamiento
|
Parámetro |
Tipo |
Valor predeterminado |
Descripción |
|
The number of rounds for boosting |
Integer |
-- |
Número de iteraciones de boosting. |
|
objective |
String |
binary:logistic |
Tarea de aprendizaje y su objetivo correspondiente. |
|
Base score |
Floating-point number |
0.5 |
Sesgo global que se usa como puntuación de predicción inicial para todas las instancias. |
|
The number of classes |
Integer |
-- |
Número de clases. Este parámetro es obligatorio para la clasificación multiclase. |
Construcción del árbol
|
Parámetro |
Tipo |
Valor predeterminado |
Descripción |
|
Tree Method |
String |
auto |
Algoritmo de construcción del árbol. Valores válidos: auto, exact, approx, hist. |
|
Maximum depth of a tree |
Integer |
6 |
Profundidad máxima del árbol. Los valores más altos incrementan la complejidad del modelo y el riesgo de sobreajuste. |
|
Max leaves |
Integer |
0 |
Número máximo de nodos hoja. El valor 0 indica que no hay límite. |
|
Grow Policy |
String |
depthwise |
Estrategia de adición de nodos. Valores válidos: depthwise, lossguide. |
|
Maximum number of discrete bins to bucket continuous features |
Integer |
256 |
Número máximo de contenedores discretos para características continuas. Solo aplica cuando Tree Method es hist. |
|
sketch_eps |
Floating-point number |
0.03 |
Precisión del agrupamiento en el algoritmo de bosquejo. Solo aplica cuando Tree Method es approx. |
Regularización
|
Parámetro |
Tipo |
Valor predeterminado |
Descripción |
|
L1 regularization term on weights |
Floating-point number |
0.0 |
Regularización L1 sobre los pesos. Los valores más altos generan modelos más conservadores. |
|
L2 regularization term on weights |
Floating-point number |
1.0 |
Regularización L2 sobre los pesos. Los valores más altos generan modelos más conservadores. |
|
gamma |
Floating-point number |
0.0 |
Reducción mínima de pérdida necesaria para realizar una partición adicional en un nodo hoja. |
|
Min child weight |
Floating-point number |
1.0 |
Suma mínima de pesos de instancias requerida en un nodo hijo. |
|
Max delta step |
Floating-point number |
0.0 |
Paso delta máximo por nodo hoja. Controla la granularidad de la actualización del modelo. |
Tasa de aprendizaje y muestreo
|
Parámetro |
Tipo |
Valor predeterminado |
Descripción |
|
eta |
Floating-point number |
0.3 |
Tasa de aprendizaje. Los valores más bajos mejoran la robustez, pero requieren más rondas de boosting. |
|
scale_pos_weight |
Floating-point number |
1.0 |
Proporción de peso para equilibrar las clases positivas y negativas. Útil para conjuntos de datos desequilibrados. |
|
Subsample ratio of the training instances |
Floating-point number |
1 |
Fracción de instancias de entrenamiento que se muestrean antes de cada ronda de boosting. |
|
Sampling method |
String |
GRADIENT_BASED |
Método de muestreo para las instancias de entrenamiento. Valores válidos: GRADIENT_BASED, UNIFORM. |
|
Subsample ratio of columns for each level |
Floating-point number |
1.0 |
Fracción de columnas que se muestrean por nivel de árbol. |
|
Subsample ratio of columns for each node (split) |
Floating-point number |
1.0 |
Fracción de columnas que se muestrean por división de nodo. |
|
Subsample ratio of columns when constructing each tree |
Floating-point number |
1.0 |
Fracción de columnas que se muestrean por árbol. |
Restricciones y distribución
|
Parámetro |
Tipo |
Valor predeterminado |
Descripción |
|
Interaction constraints |
String |
-- |
Grupos de características que pueden interactuar. |
|
Monotone constraints |
String |
-- |
Restricciones de monotonía por característica. |
|
Tweedie variance power |
Floating-point number |
1.5 |
Potencia de varianza de la distribución Tweedie. Solo aplica cuando el objetivo utiliza la distribución Tweedie. |
Execution Tuning
|
Parámetro |
Tipo |
Valores válidos |
Descripción |
|
Number of Workers |
Positive integer |
[1, 9999] |
Número de nodos worker. Configure este valor junto con Memory per worker, unit MB. |
|
Memory per worker, unit MB |
Positive integer |
[1024, 64 x 1024] |
Memoria asignada por nodo worker, en MB. |
Ejemplo de uso
Este ejemplo muestra la clasificación con XGBoost en datos de eventos de bosones de Higgs mediante una plantilla predefinida. Para crear este pipeline desde la plantilla Use XGBoost algorithm to identify the Higgs boson, consulte Create a pipeline from a preset template.
Conversión del formato de salida para evaluación
El componente genera cadenas JSON serializadas desde la biblioteca de código abierto XGBoost. Convierta esta salida para que los componentes de evaluación puedan procesar las predicciones.
Agregue un componente SQL Script después de XGboost Predict. El SQL Script convierte las predicciones al formato que requiere Binary classification Evaluation V2. Utilice el siguiente código:
set odps.sql.udf.getjsonobj.new=true;
select *, CONCAT("{\"0\":", 1.0-prob, ",\"1\":", prob, "}") as detail
FROM (
select *, cast(get_json_object(pred, '$[0]') as double) as prob FROM ${t1})
Referencias
Para realizar inference sin conexión con un modelo entrenado, utilice el componente XGboost Predict. Consulte XGboost Predict.
Para consultar la lista completa de componentes de algoritmos, véase Component reference: Overview of all components.