

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.

# XGBoost Versión 0.72
<a name="xgboost-72"></a>

**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")
```

```
import boto3
from sagemaker import image_uris

xgb_image_uri = image_uris.retrieve("xgboost", boto3.Session().region_name, "1")
```
Si desea utilizar versiones más recientes, deberá especificar las etiquetas de URI de la imagen (consulte [Versiones compatibles](xgboost.md#xgboost-supported-versions)).

Esta versión anterior del XGBoost algoritmo Amazon SageMaker AI se basa en la versión 0.72. [XGBoost](https://github.com/dmlc/xgboost)(eXtreme Gradient Boosting) es una implementación popular y eficiente de código abierto del algoritmo de árboles potenciados por gradiente. El aumento del gradiente es un algoritmo de aprendizaje supervisado que intenta predecir con precisión una variable objetivo mediante la combinación de las estimaciones de un conjunto de modelos más simples y débiles. XGBoost ha obtenido excelentes resultados en las competiciones de aprendizaje automático, ya que maneja de forma sólida una variedad de tipos de datos, relaciones y distribuciones, y debido a la gran cantidad de hiperparámetros que se pueden ajustar y ajustar para mejorar los ajustes. Esta flexibilidad constituye XGBoost una buena opción para los problemas de regresión, clasificación (binaria y multiclase) y clasificación.

Los clientes deben tener en cuenta la posibilidad de utilizar la nueva versión de [XGBoost algoritmo con Amazon SageMaker AI](xgboost.md). 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
<a name="xgboost-72-InputOutput"></a>

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 usa el módulo pickle de Python para serialize/deserialize el modelo, que se puede usar para 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 marca `csv_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,...`.

## Recomendación de instancia de EC2 para la versión 0.72 XGBoost
<a name="xgboost-72-Instance"></a>

SageMaker XGBoost Actualmente, AI solo entrena utilizando. 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
<a name="xgboost-72-sample-notebooks"></a>

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](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/xgboost_abalone/xgboost_abalone.html). Para usar la versión 0.72 de XGBoost, debe cambiar la versión del código de ejemplo a la 0.72. Para obtener instrucciones sobre cómo crear instancias de Jupyter Notebook y acceder a ellas para ejecutar el ejemplo en SageMaker IA, consulte. [Instancias de Amazon SageMaker Notebook](nbi.md) Una vez que haya creado una instancia de bloc de notas y la haya abierto, seleccione la pestaña **Ejemplos de SageMaker IA** para ver una lista de todos los ejemplos de SageMaker IA. El tema Modelado de cuadernos de ejemplo con los XGBoost algoritmos se encuentra en la sección **Introducción a los algoritmos de Amazon**. Para abrir un cuaderno, haga clic en la pestaña **Usar** y seleccione **Crear copia**.

## XGBoost Versión 0.72 Hyperparameters
<a name="xgboost-72-hyperparameters"></a>

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.](https://xgboost.readthedocs.io/en/release_0.72/parameter.html)


| Nombre del parámetro | Description (Descripción) | 
| --- | --- | 
| num\_class | Número de clases.<br />Es **obligatorio** si `objective` se establece en *multi:softmax* o *multi:softprob*.<br />Valores válidos: número entero | 
| num\_round | El número de rondas para ejecutar la capacitación.<br />**Obligatorio**<br />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.<br />**Opcional**<br />Valores válidos: número flotante<br />Valor predeterminado: 0 | 
| base\_score | La puntuación de la predicción inicial de todas las instancias (sesgo global).<br />**Opcional**<br />Valores válidos: número flotante<br />Valor predeterminado: 0,5 | 
| booster | Qué potenciador utilizar. Los valores `gbtree` y `dart` usan un modelo basado en árbol, mientras que `gblinear` usa una función lineal.<br />**Opcional**<br />Valores válidos: Cadena. Uno de los valores de entre `gbtree`, `gblinear` o `dart`.<br />Valor predeterminado: `gbtree` | 
| colsample\_bylevel | La proporción de submuestra de columnas para cada división, en cada nivel.<br />**Opcional**<br />Valores válidos: número flotante. Rango: [0,1].<br />Valor predeterminado: 1 | 
| colsample\_bytree | Proporción de la submuestra de columnas cuando se construye cada árbol.<br />**Opcional**<br />Valores válidos: número flotante. Rango: [0,1].<br />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.<br />**Opcional**<br />Valores válidos: 0 o 1<br />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 `early_stopping_rounds` para que el entrenamiento continúe. SageMaker El alojamiento de IA utiliza el mejor modelo de inferencia.<br />**Opcional**<br />Valores válidos: número entero<br />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 `eta` reduce realmente las ponderaciones de la característica para que el proceso de potenciación sea más conservador.<br />**Opcional**<br />Valores válidos: número flotante. Rango: [0,1].<br />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:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/xgboost-72.html)<br />Para obtener una lista de entradas válidas, consulte [XGBoost Parámetros](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst#learning-task-parameters).<br />**Opcional**<br />Valores válidos: cadena<br />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.<br />**Opcional**<br />Valores válidos: número flotante. Rango: [0,∞).<br />Valor predeterminado: 0 | 
| grow\_policy | Controla la forma en la que se agregan los nuevos nodos al árbol. Es actualmente compatible solo si `tree_method` se establece en `hist`.<br />**Opcional**<br />Valores válidos: Cadena. `depthwise` o `lossguide`.<br />Valor predeterminado: `depthwise` | 
| lambda | El plazo de regularización de L2 sobre ponderaciones. Si aumenta este valor, hace que los modelos sean más conservadores.<br />**Opcional**<br />Valores válidos: número flotante<br />Valor predeterminado: 1 | 
| lambda\_bias | El plazo de regularización de L2 de sesgo.<br />**Opcional**<br />Valores válidos: número flotante. Rango: [0.0, 1.0].<br />Valor predeterminado: 0 | 
| max\_bin | Número máximo de contenedores discretos en las características continuas del bucket. Se utiliza solo si `tree_method` se establece en `hist`. <br />**Opcional**<br />Valores válidos: número entero<br />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. <br />**Opcional**<br />Valores válidos: número entero. Rango: [0,∞).<br />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 `grow_policy`=`depth-wise`.<br />**Opcional**<br />Valores válidos: número entero. Rango: [0,∞)<br />Valor predeterminado: 6 | 
| max\_leaves | Número máximo de nodos que se va agregar. Solo relevante si `grow_policy` se establece en `lossguide`.<br />**Opcional**<br />Valores válidos: número entero<br />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 `min_child_weight`, el proceso de creación deja de realizar la partición. En los modelos de regresión lineal, esto simplemente se corresponde con un número mínimo de instancias necesarias en cada nodo. Conforme mayor sea el algoritmo, más conservador será.<br />**Opcional**<br />Valores válidos: número flotante. Rango: [0,∞).<br />Valor predeterminado: 1 | 
| normalize\_type | Tipo de algoritmo de normalización.<br />**Opcional**<br />Valores válidos: *árbol* o *bosque*.<br />Valor predeterminado: *árbol* | 
| nthread | Número de subprocesos paralelos utilizados para ejecutar *xgboost*.<br />**Opcional**<br />Valores válidos: número entero<br />Valor predeterminado: número máximo de subprocesos. | 
| objective | Especifica la tarea de aprendizaje y el objetivo de aprendizaje correspondiente. Ejemplos: `reg:logistic`, `reg:softmax`, `multi:squarederror`. Para obtener una lista completa de las entradas válidas, consulte [XGBoost Parámetros](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst#learning-task-parameters).<br />**Opcional**<br />Valores válidos: cadena<br />Valor predeterminado: `reg:squarederror` | 
| one\_drop | Cuando esta marca esté habilitada, al menos se rechazará siempre un árbol durante el abandono.<br />**Opcional**<br />Valores válidos: 0 o 1<br />Valor predeterminado: 0 | 
| process\_type | El tipo de proceso de potenciación que ejecutar.<br />**Opcional**<br />Valores válidos: Cadena. `default` o `update`.<br />Valor predeterminado: `default` | 
| rate\_drop | La tasa de abandono que especifica la fracción de los árboles anteriores rechazados durante el abandono.<br />**Opcional**<br />Valores válidos: número flotante. Rango: [0.0, 1.0].<br />Valor predeterminado: 0,0 | 
| refresh\_leaf | Se trata de un parámetro del complemento del actualizador 'actualizar'. Cuando se establece en `true` (1), se actualizan los estados del nodo de árbol y las hojas de árbol. Cuando se establece en `false`(0), solo se actualizan los estados de nodo de árbol.<br />**Opcional**<br />Valores válidos: 0/1<br />Valor predeterminado: 1 | 
| sample\_type | Tipo de algoritmo de muestra.<br />**Opcional**<br />Valores válidos: `uniform` o `weighted`<br />Valor predeterminado: `uniform` | 
| 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: `sum(negative cases)` / `sum(positive cases)`.<br />**Opcional**<br />Valores válidos: número flotante<br />Valor predeterminado: 1 | 
| seed | Semilla de número aleatorio.<br />**Opcional**<br />Valores válidos: número entero<br />Valor predeterminado: 0 | 
| silent | 0 significa mensajes de ejecución de impresión, 1 significa modo silencioso.<br />Valores válidos: 0 o 1<br />**Opcional**<br />Valor predeterminado: 0 | 
| sketch\_eps | Se utiliza solo para el algoritmo voraz aproximado. Traduce el número de contenedores O(1 / `sketch_eps`). En comparación con el número seleccionado directamente de contenedores, incluye la garantía teórica con la precisión del boceto.<br />**Opcional**<br />Valores válidos: número flotante, Rango: [0, 1].<br />Valor predeterminado: 0.03 | 
| skip\_drop | Probabilidad de omisión del procedimiento de abandono durante una iteración de potenciación.<br />**Opcional**<br />Valores válidos: número flotante. Rango: [0.0, 1.0].<br />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.<br />**Opcional**<br />Valores válidos: número flotante. Rango: [0,1].<br />Valor predeterminado: 1 | 
| tree\_method | El algoritmo de construcción de árboles utilizado en XGBoost.<br />**Opcional**<br />Valores válidos: uno de entre los valores `auto`, `exact`, `approx` o `hist`<br />Valor predeterminado: `auto` | 
| tweedie\_variance\_power | Parámetro que controla la varianza de la distribución de Tweedie.<br />**Opcional**<br />Valores válidos: número flotante. Rango: (1, 2).<br />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 construir y modificar los árboles.<br />Para obtener una lista completa de las entradas válidas, consulte los [XGBoost parámetros](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst).<br />**Opcional**<br />Valores válidos: cadena separada por comas<br />Valor predeterminado: `grow_colmaker`, omisión | 

## Ajuste y XGBoost publique el modelo 0.72
<a name="xgboost-72-tuning"></a>

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](automatic-model-tuning.md).

### Métricas calculadas mediante el algoritmo de la versión 0.72 XGBoost
<a name="xgboost-72-metrics"></a>

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](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst#learning-task-parameters)


| Nombre de métrica | Description (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
<a name="xgboost-72-tunable-hyperparameters"></a>

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 | 