Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
importante
Amazon SageMaker AI ha dejado de usar la XGBoost 0.72. Puede seguir utilizando esta versión antigua de XGBoost (como algoritmo integrado) extrayendo el URI de la imagen, tal y como se muestra en el siguiente ejemplo de código. Pues XGBoost, el URI de la imagen que termina en :1
es para la versión anterior.
import boto3
from sagemaker.amazon.amazon_estimator import get_image_uri
xgb_image_uri = get_image_uri(boto3.Session().region_name, "xgboost", repo_version="1")
Si desea utilizar versiones más recientes, deberá especificar las etiquetas de URI de la imagen (consulte Versiones compatibles).
Esta versión anterior del XGBoost algoritmo Amazon SageMaker AI se basa en la versión 0.72. XGBoost
Los clientes deben tener en cuenta la posibilidad de utilizar la nueva versión de XGBoost algoritmo con Amazon SageMaker AI. Pueden usarlo como un algoritmo integrado de SageMaker IA o como un marco para ejecutar scripts en sus entornos locales, como lo harían normalmente, por ejemplo, con un marco de aprendizaje profundo de Tensorflow. La nueva implementación ocupa menos espacio en memoria, tiene un mejor registro, una validación de hiperparámetros mejorada y un conjunto ampliado de métricas. La implementación anterior de XGBoost permanece disponible para los clientes si necesitan posponer la migración a la nueva versión. Sin embargo, esta implementación anterior seguirá vinculada a la versión 0.72 de. XGBoost
Interfaz de entrada/salida para la versión 0.72 XGBoost
La potenciación de gradientes funciona en los datos tabulares, con las filas que representan observaciones, una columna que representa la variable de destino o la etiqueta, y las columnas restantes que representan las características.
La implementación de SageMaker IA XGBoost admite los formatos CSV y libsvm para entrenamiento e inferencia:
-
Para Training ContentType, las entradas válidas son text/libsvm (predeterminado) o text/csv.
-
Para la inferencia ContentType, las entradas válidas son text/libsvm o (por defecto) text/csv.
nota
Para la capacitación de CSV, el algoritmo asume la variable de destino en la primera columna y ese CSV no dispone de un registro de encabezado. Para la inferencia de CSV, el algoritmo asume que la entrada de CSV no dispone de la columna de etiqueta.
Para la capacitación de libsvm, el algoritmo presupone que la etiqueta está en la primera columna. Las columnas siguientes contienen los pares índice-valor basados en cero para las características. Así pues, cada fila tiene el formato: <label> <index0>:<value0> <index1>:<value1> ... Las solicitudes de inferencia para libsvm pueden tener o no etiquetas en el formato libsvm.
Esto difiere de otros algoritmos de SageMaker IA, que utilizan el formato de entrada de entrenamiento protobuf para mantener una mayor coherencia con los formatos de datos estándar. XGBoost
Para el modo de entrada de capacitación de CSV, la memoria total disponible para el algoritmo (recuento de instancia * la memoria disponible en InstanceType
) debe poder almacenar el conjunto de datos de capacitación. Para el modo de entrada de capacitación de libsvm, no es necesario, pero recomendable.
SageMaker La IA XGBoost utiliza el módulo pickle de Python para serialize/deserialize the model, which can be used for saving/loading el modelo.
Para usar un modelo entrenado con SageMaker IA XGBoost en código abierto XGBoost
-
Utilice el siguiente código de Python:
import pickle as pkl import tarfile import xgboost t = tarfile.open('model.tar.gz', 'r:gz') t.extractall() model = pkl.load(open(
model_file_path
, 'rb')) # prediction with test data pred = model.predict(dtest
)
Para diferenciar la importancia de los puntos de datos etiquetados utilice los soportes de ponderación de instancias
-
SageMaker La IA XGBoost permite a los clientes diferenciar la importancia de los puntos de datos etiquetados asignando un valor de peso a cada instancia. Para la entrada text/libsvm, los clientes pueden asignar valores de ponderación a las instancias de datos añadiéndolos después de las etiquetas. Por ejemplo,
label:weight idx_0:val_0 idx_1:val_1...
. Para la entrada text/csv, los clientes deben activar la marcacsv_weights
en los parámetros y asociar los valores de ponderación en la columna después de las etiquetas. Por ejemplo,label,weight,val_0,val_1,...
.
EC2 Recomendación de instancia para la versión 0.72 XGBoost
SageMaker XGBoost Actualmente, la IA solo entrena usando CPUs. Se trata de un algoritmo de vinculación de memoria (como se opone en la vinculación de computación). Por lo tanto, una instancia de computación de uso general (por ejemplo, M4) es una opción mejor que una instancia optimizada de computación (por ejemplo, C4). Además, recomendamos que disponga de suficiente memoria en total en las instancias seleccionadas para almacenar los datos de capacitación. Aunque admite el uso del espacio en disco para gestionar datos que no caben en la memoria principal ( out-of-corefunción disponible en el modo de entrada libsvm), escribir archivos de caché en el disco reduce el tiempo de procesamiento del algoritmo.
XGBoost Cuadernos de muestra de la versión 0.72
Para ver un ejemplo de cuaderno que muestra cómo utilizar la última versión de la SageMaker IA XGBoost como algoritmo integrado para entrenar y alojar un modelo de regresión, consulte Regresión con el XGBoost algoritmo de SageMaker IA de Amazon
XGBoost Versión 0.72 Hyperparameters
La siguiente tabla contiene los hiperparámetros del algoritmo. XGBoost Estos son los parámetros que establecen los usuarios para facilitar la estimación de los parámetros del modelo a partir de los datos. Los hiperparámetros necesarios que deben establecerse se enumerarán en primer lugar, en orden alfabético. Los hiperparámetros opcionales que se pueden establecer aparecen a continuación en la lista, también en orden alfabético. El XGBoost algoritmo de SageMaker IA es una implementación del paquete de código abierto XGBoost . Actualmente, SageMaker AI es compatible con la versión 0.72. Para obtener más información sobre la configuración de hiperparámetros para esta versión de XGBoost, consulte XGBoost Parámetros.
Nombre del parámetro | Descripción |
---|---|
num_class |
Número de clases. Es obligatorio si Valores válidos: número entero |
num_round |
El número de rondas para ejecutar la capacitación. Obligatorio Valores válidos: número entero |
alpha |
El plazo de regularización de L1 sobre ponderaciones. Si aumenta este valor, hace que los modelos sean más conservadores. Opcional Valores válidos: número flotante Valor predeterminado: 0 |
base_score |
La puntuación de la predicción inicial de todas las instancias (sesgo global). Opcional Valores válidos: número flotante Valor predeterminado: 0,5 |
booster |
Qué potenciador utilizar. Los valores Opcional Valores válidos: Cadena. Uno de los valores de entre Valor predeterminado: |
colsample_bylevel |
La proporción de submuestra de columnas para cada división, en cada nivel. Opcional Valores válidos: número flotante. Rango: [0,1]. Valor predeterminado: 1 |
colsample_bytree |
Proporción de la submuestra de columnas cuando se construye cada árbol. Opcional Valores válidos: número flotante. Rango: [0,1]. Valor predeterminado: 1 |
csv_weights |
Cuando este indicador está activado, XGBoost diferencia la importancia de las instancias a la hora de introducir archivos csv tomando la segunda columna (la columna que sigue a las etiquetas) de los datos de entrenamiento como ponderación de las instancias. Opcional Valores válidos: 0 o 1 Valor predeterminado: 0 |
early_stopping_rounds |
El modelo realiza la capacitación hasta que la puntuación de validación para de mejorar. El error de validación tiene que reducirse en, al menos, cada Opcional Valores válidos: número entero Valor predeterminado: - |
eta |
Contracción del tamaño del paso utilizado en las actualizaciones para evitar el ajuste excesivo. Después de cada paso de potenciación, puede obtener directamente las ponderaciones de las nuevas características. El parámetro Opcional Valores válidos: número flotante. Rango: [0,1]. Valor predeterminado: 0,3 |
eval_metric |
Métricas de evaluación de los datos de validación. Una métrica predeterminada se asigna de acuerdo con el objetivo:
Para obtener una lista de entradas válidas, consulte XGBoost Parámetros Opcional Valores válidos: cadena Valor predeterminado: predeterminado según el objetivo. |
gamma |
La reducción de pérdida mínima necesaria para realizar una partición mayor en un nodo de hoja del árbol. Conforme mayor sea, más conservador será el algoritmo. Opcional Valores válidos: número flotante. Rango: [0,∞). Valor predeterminado: 0 |
grow_policy |
Controla la forma en la que se agregan los nuevos nodos al árbol. Es actualmente compatible solo si Opcional Valores válidos: Cadena. Valor predeterminado: |
lambda |
El plazo de regularización de L2 sobre ponderaciones. Si aumenta este valor, hace que los modelos sean más conservadores. Opcional Valores válidos: número flotante Valor predeterminado: 1 |
lambda_bias |
El plazo de regularización de L2 de sesgo. Opcional Valores válidos: número flotante. Rango: [0.0, 1.0]. Valor predeterminado: 0 |
max_bin |
Número máximo de contenedores discretos en las características continuas del bucket. Se utiliza solo si Opcional Valores válidos: número entero Valor predeterminado: 256 |
max_delta_step |
El paso delta máximo permitido para la estimación de ponderación de cada árbol. Cuando se utiliza un número entero positivo, ayuda a hacer la actualización más conservadora. La opción preferida es usarla en la regresión logística. Establézcala en 1-10 para ayudar a controlar la actualización. Opcional Valores válidos: número entero. Rango: [0,∞). Valor predeterminado: 0 |
max_depth |
Profundidad máxima de un árbol. El aumento de este valor hace que el modelo sea más complejo y que se sobreajuste con más probabilidad. 0 indica que no hay límite. Se requiere un límite cuando Opcional Valores válidos: número entero. Rango: [0,∞) Valor predeterminado: 6 |
max_leaves |
Número máximo de nodos que se va agregar. Solo relevante si Opcional Valores válidos: número entero Valor predeterminado: 0 |
min_child_weight |
Suma mínima de la ponderación de instancias (hessiana) necesaria en un elemento secundario. Si el paso de partición del árbol genera un nodo de hoja con la suma de la ponderación de instancia inferior a Opcional Valores válidos: número flotante. Rango: [0,∞). Valor predeterminado: 1 |
normalize_type |
Tipo de algoritmo de normalización. Opcional Valores válidos: árbol o bosque. Valor predeterminado: árbol |
nthread |
Número de subprocesos paralelos utilizados para ejecutar xgboost. Opcional Valores válidos: número entero Valor predeterminado: número máximo de subprocesos. |
objective |
Especifica la tarea de aprendizaje y el objetivo de aprendizaje correspondiente. Ejemplos: Opcional Valores válidos: cadena Valor predeterminado: |
one_drop |
Cuando esta marca esté habilitada, al menos se rechazará siempre un árbol durante el abandono. Opcional Valores válidos: 0 o 1 Valor predeterminado: 0 |
process_type |
El tipo de proceso de potenciación que ejecutar. Opcional Valores válidos: Cadena. Valor predeterminado: |
rate_drop |
La tasa de abandono que especifica la fracción de los árboles anteriores rechazados durante el abandono. Opcional Valores válidos: número flotante. Rango: [0.0, 1.0]. Valor predeterminado: 0,0 |
refresh_leaf |
Se trata de un parámetro del complemento del actualizador 'actualizar'. Cuando se establece en Opcional Valores válidos: 0/1 Valor predeterminado: 1 |
sample_type |
Tipo de algoritmo de muestra. Opcional Valores válidos: Valor predeterminado: |
scale_pos_weight |
Controla el equilibrio de las ponderaciones positivas y negativas. Resulta útil para las clases sin equilibrar. Un valor típico que tener en cuenta: Opcional Valores válidos: número flotante Valor predeterminado: 1 |
seed |
Semilla de número aleatorio. Opcional Valores válidos: número entero Valor predeterminado: 0 |
silent |
0 significa mensajes de ejecución de impresión, 1 significa modo silencioso. Valores válidos: 0 o 1 Opcional Valor predeterminado: 0 |
sketch_eps |
Se utiliza solo para el algoritmo voraz aproximado. Traduce el número de contenedores O(1 / Opcional Valores válidos: número flotante, Rango: [0, 1]. Valor predeterminado: 0.03 |
skip_drop |
Probabilidad de omisión del procedimiento de abandono durante una iteración de potenciación. Opcional Valores válidos: número flotante. Rango: [0.0, 1.0]. Valor predeterminado: 0,0 |
subsample |
La proporción de la submuestra de la instancia de capacitación. Si se establece en 0,5, se XGBoost recopilará aleatoriamente la mitad de las instancias de datos para hacer crecer árboles. Esto evita el sobreajuste. Opcional Valores válidos: número flotante. Rango: [0,1]. Valor predeterminado: 1 |
tree_method |
El algoritmo de construcción de árboles utilizado en XGBoost. Opcional Valores válidos: uno de entre los valores Valor predeterminado: |
tweedie_variance_power |
Parámetro que controla la varianza de la distribución de Tweedie. Opcional Valores válidos: número flotante. Rango: (1, 2). Valor predeterminado: 1.5 |
updater |
Una cadena separada por comas que define la secuencia de los actualizadores de árbol que ejecutar. Esto proporciona una forma modular de crear y modificar los árboles. Para obtener una lista completa de las entradas válidas, consulte los XGBoost parámetros Opcional Valores válidos: cadena separada por comas Valor predeterminado: |
Ajuste y XGBoost publique el modelo 0.72
El ajuste de modelo automático, también conocido como ajuste de hiperparámetros, encuentra la mejor versión de un modelo ejecutando distintas tareas que prueban una serie de hiperparámetros en los conjuntos de datos de validación y entrenamiento. Puede elegir tres tipos de hiperparámetros:
-
Una función
objective
de aprendizaje que se debe optimizar durante el entrenamiento con modelos. -
Una
eval_metric
para usar al evaluar el rendimiento del modelo durante la validación. -
Un conjunto de hiperparámetros y un rango de valores para emplear al ajustar el modelo automáticamente.
Usted elige la métrica de evaluación del conjunto de métricas de evaluación que calcula el algoritmo. El ajuste de modelo automático busca los hiperparámetros elegidos para encontrar la combinación de valores que genere el modelo que optimiza la métrica de evaluación.
Para obtener más información acerca del ajuste de modelos, consulte Ajuste automático de modelos con IA SageMaker .
Métricas calculadas mediante el algoritmo de la versión 0.72 XGBoost
El XGBoost algoritmo basado en la versión 0.72 calcula las siguientes nueve métricas para utilizarlas en la validación del modelo. Al ajustar el modelo, elija una de estas métricas para evaluarlo. Para obtener una lista completa de eval_metric
valores válidos, consulte los parámetros de las tareas de XGBoost aprendizaje
Nombre de métrica | Descripción | Dirección de optimización |
---|---|---|
validation:auc |
Área bajo la curva. |
Maximizar |
validation:error |
Tasa de errores de clasificación binaria, calculada como #(casos erróneos)/#(todos los casos). |
Minimizar |
validation:logloss |
Probabilidad de registro negativa. |
Minimizar |
validation:mae |
Error absoluto medio. |
Minimizar |
validation:map |
Precisión media. |
Maximizar |
validation:merror |
Tasa de errores de clasificación multiclase, calculada como #(casos erróneos)/#(todos los casos). |
Minimizar |
validation:mlogloss |
Probabilidad de registro negativa para la clasificación multiclase. |
Minimizar |
validation:ndcg |
Ganancia acumulativa con descuento normalizada. |
Maximizar |
validation:rmse |
Raíz del error cuadrático medio. |
Minimizar |
Hiperparámetros ajustables de XGBoost la versión 0.72
Ajuste el XGBoost modelo con los siguientes hiperparámetros. Los hiperparámetros que tienen el mayor efecto en la optimización de las métricas de XGBoost evaluación son:alpha
,min_child_weight
, subsample
eta
, y. num_round
Nombre del parámetro | Tipo de parámetro | Intervalos recomendados |
---|---|---|
alpha |
ContinuousParameterRanges |
MinValue: 0, MaxValue: 1000 |
colsample_bylevel |
ContinuousParameterRanges |
MinValue: 0,1, MaxValue: 1 |
colsample_bytree |
ContinuousParameterRanges |
MinValue: 0,5, MaxValue: 1 |
eta |
ContinuousParameterRanges |
MinValue: 0,1, MaxValue 0,5 |
gamma |
ContinuousParameterRanges |
MinValue: 0, MaxValue 5 |
lambda |
ContinuousParameterRanges |
MinValue: 0, MaxValue 1000 |
max_delta_step |
IntegerParameterRanges |
[0, 10] |
max_depth |
IntegerParameterRanges |
[0, 10] |
min_child_weight |
ContinuousParameterRanges |
MinValue: 0, MaxValue 120 |
num_round |
IntegerParameterRanges |
[1, 4000] |
subsample |
ContinuousParameterRanges |
MinValue: 0,5, MaxValue: 1 |