

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# XGBoost Versão 0.72
<a name="xgboost-72"></a>

**Importante**  
O XGBoost 0,72 foi descontinuado pela Amazon AI. SageMaker Você ainda pode usar essa versão antiga do XGBoost (como um algoritmo incorporado) extraindo o URI da imagem, conforme mostrado no exemplo de código a seguir. Para XGBoost, o URI da imagem que termina com `:1` é para a versão antiga.  

```
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")
```
Se você quiser usar versões mais recentes, precisará especificar explicitamente as etiquetas de URI da imagem (consulte [Versões aceitas](xgboost.md#xgboost-supported-versions)).

Essa versão anterior do XGBoost algoritmo Amazon SageMaker AI é baseada na versão 0.72. [XGBoost](https://github.com/dmlc/xgboost)(eXtreme Gradient Boosting) é uma implementação de código aberto popular e eficiente do algoritmo de árvores com aumento de gradiente. O aumento de gradiente é um algoritmo de aprendizado supervisionado que tenta prever com precisão uma variável-alvo combinando as estimativas de um conjunto de modelos mais simples e fracos. XGBoost tem se saído muito bem em competições de aprendizado de máquina porque lida de forma robusta com uma variedade de tipos de dados, relacionamentos e distribuições e devido ao grande número de hiperparâmetros que podem ser ajustados e ajustados para melhores ajustes. Essa flexibilidade é XGBoost uma escolha sólida para problemas de regressão, classificação (binária e multiclasse) e classificação.

Os clientes devem considerar o uso da nova versão do [XGBoost algoritmo com Amazon SageMaker AI](xgboost.md). Eles podem usá-lo como um algoritmo integrado de SageMaker IA ou como uma estrutura para executar scripts em seus ambientes locais, como normalmente fariam, por exemplo, com uma estrutura de aprendizado profundo do Tensorflow. A nova implementação tem um espaço de memória menor, melhor registro em log, melhor validação de hiperparâmetros e um conjunto expandido de métricas. A implementação anterior do XGBoost permanece disponível para os clientes se eles precisarem adiar a migração para a nova versão. Mas essa implementação anterior permanecerá vinculada à versão 0.72 do XGBoost.

## Interface de entrada/saída para a versão 0.72 XGBoost
<a name="xgboost-72-InputOutput"></a>

O aumento de gradiente trabalha em dados tabulares: as linhas representam as observações, uma coluna representa a variável de destino ou rótulo, e as demais colunas representam os atributos. 

A implementação de SageMaker IA do XGBoost suporta os formatos CSV e libsvm para treinamento e inferência:
+ *Para treinamento ContentType, as entradas válidas são *text/libsvm (padrão) ou text/csv*.*
+ *Para inferência ContentType, as entradas válidas são *text/libsvm ou (o padrão) text/csv*.*

**nota**  
Para treinamento de CSV, o algoritmo de treinamento pressupõe que a variável de destino está na primeira coluna e que o CSV não tem um registro de cabeçalho. Para inferência de CSV, o algoritmo pressupõe que a entrada do CSV não tem a coluna de rótulo.   
Para o treinamento libsvm, o algoritmo assume que o rótulo esteja na primeira coluna. Colunas subsequentes contêm os pares de valores de índice baseados em zero para recursos. Portanto, cada linha tem o formato: <label> <index0>:<value0> <index1>:<value1> ... As solicitações de inferência para libsvm podem ou não ter rótulos no formato libsvm.

Isso difere de outros algoritmos de SageMaker IA, que usam o formato de entrada de treinamento protobuf para manter uma maior consistência com os formatos de XGBoost dados padrão.

Para o modo de entrada do treinamento CSV, a memória total disponível para o algoritmo (contagem de instância \* a memória disponível no `InstanceType`) deve ser capaz de conter o conjunto de dados de treinamento. Para o modo de entrada de treinamento libsvm, não é necessário, mas recomendado.

SageMaker A IA XGBoost usa o módulo pickle do Python serialize/deserialize no modelo, que pode ser usado para saving/loading o modelo.

**Para usar um modelo treinado com SageMaker IA XGBoost em código aberto XGBoost**
+ Use o seguinte código do 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 a importância dos pontos de dados rotulados, use Apoios de peso de instância**
+ SageMaker A IA XGBoost permite que os clientes diferenciem a importância dos pontos de dados rotulados atribuindo a cada instância um valor de peso. Para a entrada *text/libsvm*, os clientes podem atribuir valores de peso a instâncias de dados, anexando-os após os rótulos. Por exemplo, .`label:weight idx_0:val_0 idx_1:val_1...` Para entrada *text/csv*, os clientes precisam ativar o sinalizador `csv_weights` nos parâmetros e anexar valores de peso na coluna após os rótulos. Por exemplo: `label,weight,val_0,val_1,...`).

## Recomendação de instância do EC2 para a XGBoost versão 0.72
<a name="xgboost-72-Instance"></a>

SageMaker XGBoost Atualmente, a IA treina apenas usando CPUs. É um algoritmo de uso intensivo de memória (ao contrário dos de uso intensivo de computação). Portanto, uma instância de computação de uso geral (por exemplo, M4) é uma opção melhor do que uma instância otimizada para computação (por exemplo, C4). Além disso, recomendamos que você tenha memória total suficiente em instâncias específicas para armazenar os dados de treinamento. Embora ele suporte o uso de espaço em disco para lidar com dados que não cabem na memória principal (o out-of-core recurso disponível com o modo de entrada libsvm), gravar arquivos de cache no disco diminui o tempo de processamento do algoritmo.

## XGBoost Notebooks de amostra da versão 0.72
<a name="xgboost-72-sample-notebooks"></a>

Para ver um exemplo de caderno que mostra como usar a versão mais recente da SageMaker IA XGBoost como um algoritmo integrado para treinar e hospedar um modelo de regressão, consulte [Regressão com o algoritmo Amazon SageMaker AI XGBoost ](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/xgboost_abalone/xgboost_abalone.html). Para usar a versão 0.72 do XGBoost, você precisa alterar a versão no código de amostra para 0.72. Para obter instruções sobre como criar e acessar instâncias do notebook Jupyter que você pode usar para executar o exemplo em SageMaker IA, consulte. [Instâncias de SageMaker notebook da Amazon](nbi.md) Depois de criar uma instância do notebook e abri-la, selecione a guia **Exemplos de SageMaker IA** para ver uma lista de todas as amostras de SageMaker IA. Os blocos de notas de exemplo de modelagem de tópicos usando os XGBoost algoritmos estão localizados na seção **Introdução aos algoritmos da Amazon**. Para abrir um caderno, clique em sua guia **Uso** e selecione **Criar cópia**.

## XGBoost Hiperparâmetros da versão 0.72
<a name="xgboost-72-hyperparameters"></a>

A tabela a seguir contém os hiperparâmetros do XGBoost algoritmo. Esses parâmetros são definidos pelos usuários para facilitar a estimativa dos parâmetros do modelo a partir dos dados. Os hiperparâmetros necessários que devem ser definidos são listados primeiro, em ordem alfabética. Os hiperparâmetros opcionais que podem ser configurados são listados em seguida, também em ordem alfabética. O XGBoost algoritmo de SageMaker IA é uma implementação do XGBoost pacote de código aberto. Atualmente, o SageMaker AI suporta a versão 0.72. Para obter mais detalhes sobre a configuração de hiperparâmetros para essa versão do XGBoost, consulte [ XGBoostParâmetros](https://xgboost.readthedocs.io/en/release_0.72/parameter.html).


| Nome do parâmetro | Description | 
| --- | --- | 
| num\_class | O número de classes.<br />**Obrigatório** se `objective` estiver definido como *multi:softmax* ou *multi:softprob*.<br />Valores válidos: inteiro | 
| num\_round | O número de rodadas para execução do treinamento.<br />**Obrigatório**<br />Valores válidos: inteiro | 
| alpha | Termo de regularização L1 nos pesos. Aumentar esse valor torna os modelos mais conservadores.<br />**Opcional**<br />Valores válidos: flutuante<br />Valor padrão: 0 | 
| base\_score | A pontuação de predição inicial de todas as instâncias, a polarização global.<br />**Opcional**<br />Valores válidos: flutuante<br />Valor padrão: 0.5 | 
| booster | O objeto de aumento a ser usado. Os valores `gbtree` e `dart` usam um modelo baseado em árvore, enquanto `gblinear` usa uma função linear.<br />**Opcional**<br />Valores válidos: string. `gbtree`, `gblinear` ou `dart`.<br />Valor padrão: `gbtree` | 
| colsample\_bylevel | Taxa de subsampling de colunas para cada divisão, em cada nível.<br />**Opcional**<br />Valores válidos: flutuante. Intervalo: [0,1].<br />Valor padrão: 1 | 
| colsample\_bytree | Taxa de subsampling de colunas ao criar cada árvore.<br />**Opcional**<br />Valores válidos: flutuante. Intervalo: [0,1].<br />Valor padrão: 1 | 
| csv\_weights | Quando esse sinalizador está ativado, XGBoost diferencia a importância das instâncias para entrada de csv usando a segunda coluna (a coluna após os rótulos) nos dados de treinamento como os pesos da instância.<br />**Opcional**<br />Valores válidos: 0 ou 1<br />Valor padrão: 0 | 
| early\_stopping\_rounds | O modelo será treinado até que a pontuação de validação pare de melhorar. Os erros de validação precisam diminuir pelo menos a cada `early_stopping_rounds` para continuar o treinamento. SageMaker A hospedagem de IA usa o melhor modelo para inferência.<br />**Opcional**<br />Valores válidos: inteiro<br />Valor padrão: - | 
| eta | Diminuição do tamanho das etapas: técnica usada em atualizações para evitar o sobreajuste. Depois de cada etapa de aumento, você pode obter os pesos dos novos atributos diretamente. Na verdade, o parâmetro `eta` diminui os pesos dos atributos para tornar o processo de aumento mais conservador.<br />**Opcional**<br />Valores válidos: flutuante. Intervalo: [0,1].<br />Valor padrão: 0.3 | 
| eval\_metric | Métricas de avaliação para os dados de validação. Uma métrica padrão é atribuída de acordo com o objetivo:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/xgboost-72.html)<br />Para obter uma 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: string<br />Valor padrão: de acordo com o objetivo. | 
| gamma | A redução de perda mínima necessária para fazer uma partição adicional em um nó de folha da árvore. Quanto maior for o parâmetro, mais conservador será o algoritmo.<br />**Opcional**<br />Valores válidos: flutuante. Intervalo: [0,∞).<br />Valor padrão: 0 | 
| grow\_policy | Controla a forma como os novos nós são adicionados à árvore. No momento, ele é apenas compatível quando `tree_method` está definido como `hist`.<br />**Opcional**<br />Valores válidos: string. `depthwise` ou `lossguide`.<br />Valor padrão: `depthwise` | 
| lambda | Termo de regularização L2 nos pesos. Aumentar esse valor torna os modelos mais conservadores.<br />**Opcional**<br />Valores válidos: flutuante<br />Valor padrão: 1 | 
| lambda\_bias | Termo de regularização L2 na polarização.<br />**Opcional**<br />Valores válidos: flutuante. Intervalo: [0.0, 1.0].<br />Valor padrão: 0 | 
| max\_bin | O número máximo de compartilhamentos distintos para os atributos contínuos de bucket. Usado somente quando `tree_method` está definido como `hist`. <br />**Opcional**<br />Valores válidos: inteiro<br />Valor padrão: 256 | 
| max\_delta\_step | O máximo de etapas delta permitido para a estimativa de peso de cada árvore. Quando um inteiro positivo é usado, ajuda a tornar a atualização mais conservadora. A opção preferida é usá-lo em regressão logística. Defina-o como 1 a 10 para ajudar a controlar a atualização. <br />**Opcional**<br />Valores válidos: inteiro. Intervalo: [0,∞).<br />Valor padrão: 0 | 
| max\_depth | A profundidade máxima de uma árvore. Aumentar esse valor torna o modelo mais complexo e propenso a sofrer sobreajuste. 0 indica que não há limite. Um limite é necessário quando `grow_policy`=`depth-wise`.<br />**Opcional**<br />Valores válidos: inteiro. Intervalo: [0,∞)<br />Valor padrão: 6 | 
| max\_leaves | O número máximo de nós a ser adicionado. Relevante apenas quando `grow_policy` está definido como `lossguide`.<br />**Opcional**<br />Valores válidos: inteiro<br />Valor padrão: 0 | 
| min\_child\_weight | A soma mínima de peso de instância (hessiano) necessária em um elemento filho. Se a etapa de partição da árvore resulta em um nó de folha com a soma de peso de instância inferior a `min_child_weight`, o processo de criação cede mais particionamento. Em modelos de regressão linear, isso basicamente corresponde ao número mínimo de instâncias necessárias em cada nó. Quanto maior for o algoritmo, mais conservador ele será.<br />**Opcional**<br />Valores válidos: flutuante. Intervalo: [0,∞).<br />Valor padrão: 1 | 
| normalize\_type | Tipo de algoritmo de normalização.<br />**Opcional**<br />Valores válidos: *tree* ou *forest*.<br />Valor padrão: *tree* | 
| nthread | Número de threads paralelos usado para executar *XGBoost*.<br />**Opcional**<br />Valores válidos: inteiro<br />Valor padrão: o número máximo de threads. | 
| objective | Especifica a tarefa de aprendizado e o objetivo de aprendizado correspondente. Exemplos: `reg:logistic`, `reg:softmax`, `multi:squarederror`. Para obter uma lista completa 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: string<br />Valor padrão: `reg:squarederror` | 
| one\_drop | Quando esse sinalizador está habilitado, pelo menos uma árvore é sempre descartada durante o processo.<br />**Opcional**<br />Valores válidos: 0 ou 1<br />Valor padrão: 0 | 
| process\_type | O tipo de processo de aumento a ser executado.<br />**Opcional**<br />Valores válidos: string. `default` ou `update`.<br />Valor padrão: `default` | 
| rate\_drop | A taxa de abandono que especifica a fração de árvores anteriores a serem descartadas durante o abandono.<br />**Opcional**<br />Valores válidos: flutuante. Intervalo: [0.0, 1.0].<br />Valor padrão: 0.0 | 
| refresh\_leaf | Este é um parâmetro do plug-in do atualizador "refresh". Quando definido como `true` (1), as folhas da árvore e as estatísticas de nó da árvore são atualizadas. Quando definido como `false` (0), somente as estatísticas de nós da árvore são atualizadas.<br />**Opcional**<br />Valores válidos: 0/1<br />Valor padrão: 1 | 
| sample\_type | Tipo de algoritmo de amostragem.<br />**Opcional**<br />Valores válidos: `uniform` ou `weighted`.<br />Valor padrão: `uniform` | 
| scale\_pos\_weight | Controla o equilíbrio dos pesos positivos e negativos. É útil para classes desbalanceadas. Um valor típico a ser considerado: `sum(negative cases)` / `sum(positive cases)`.<br />**Opcional**<br />Valores válidos: flutuante<br />Valor padrão: 1 | 
| seed | Origem de número aleatório.<br />**Opcional**<br />Valores válidos: inteiro<br />Valor padrão: 0 | 
| silent | 0 significa mensagens de execução de impressão, 1 significa modo silencioso.<br />Valores válidos: 0 ou 1<br />**Opcional**<br />Valor padrão: 0 | 
| sketch\_eps | Usado apenas para algoritmo voraz aproximado. Isso se converte em O(1 / número de compartimentos `sketch_eps`) Em comparação com o número de compartimentos diretamente selecionado, esse parâmetro agrega garantia teórica com precisão de esboço.<br />**Opcional**<br />Valores válidos: flutuante. Intervalo: [0, 1].<br />Valor padrão: 0.03 | 
| skip\_drop | Probabilidade de ignorar o procedimento de dropout durante uma iteração de aumento.<br />**Opcional**<br />Valores válidos: flutuante. Intervalo: [0.0, 1.0].<br />Valor padrão: 0.0 | 
| subsample | Taxa de subsampling da instância de treinamento. Defini-lo como 0,5 significa que coleta XGBoost aleatoriamente metade das instâncias de dados para cultivar árvores. Isso evita o sobreajuste.<br />**Opcional**<br />Valores válidos: flutuante. Intervalo: [0,1].<br />Valor padrão: 1 | 
| tree\_method | O algoritmo de construção de árvores usado em XGBoost.<br />**Opcional**<br />Valores válidos: Um de `auto`, `exact`, `approx` ou `hist`.<br />Valor padrão: `auto` | 
| tweedie\_variance\_power | O parâmetro que controla a variação da distribuição Tweedie.<br />**Opcional**<br />Valores válidos: flutuante. Intervalo: (1, 2).<br />Valor padrão: 1.5 | 
| updater | Uma string separada por vírgulas que define a sequência de atualizadores de árvore a ser executada. Isso fornece uma forma modular de construir e modificar as árvores.<br />Para obter uma lista completa de entradas válidas, consulte [XGBoost Parâmetros](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst).<br />**Opcional**<br />Valores válidos: string separada por vírgulas.<br />Valor padrão: `grow_colmaker`, prune | 

## Ajuste e XGBoost libere o modelo 0.72
<a name="xgboost-72-tuning"></a>

O *ajuste automático de modelos*, também conhecido como ajuste de hiperparâmetros, localiza a melhor versão de um modelo executando vários trabalhos que testam uma série de hiperparâmetros no seu conjunto de dados de treinamento e validação. Você escolhe três tipos de hiperparâmetros:
+ uma função de `objective` de aprendizado para otimizar durante o treinamento de modelo
+ uma `eval_metric` para usar para avaliar o desempenho do modelo durante a validação
+ um conjunto de hiperparâmetros e uma faixa de valores para cada um usar ao ajustar o modelo automaticamente

Você escolhe a métrica de avaliação do conjunto de métricas de avaliação que o algoritmo calcula. O ajuste automático de modelos pesquisa os hiperparâmetros escolhidos para encontrar a combinação de valores que resultam no modelo que otimiza a métrica de avaliação. 

Para mais informações sobre o ajuste de modelos, consulte [Ajuste automático do modelo com SageMaker IA](automatic-model-tuning.md).

### Métricas calculadas pelo algoritmo XGBoost Release 0.72
<a name="xgboost-72-metrics"></a>

O XGBoost algoritmo baseado na versão 0.72 calcula as nove métricas a seguir para usar na validação do modelo. Ao ajustar o modelo, escolha uma destas métricas para avaliar o modelo. Para obter uma lista completa de `eval_metric` valores válidos, consulte [Parâmetros da tarefa de XGBoost aprendizagem](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst#learning-task-parameters)


| Nome da métrica | Description | Direção de otimização | 
| --- | --- | --- | 
| validation:auc | Área sob a curva. | Maximizar | 
| validation:error | Taxa de erro de classificação binária, calculada como \#(casos errados)/\#(todos os casos). | Minimizar | 
| validation:logloss | Verossimilhança de log negativa. | Minimizar | 
| validation:mae | Erro absoluto médio. | Minimizar | 
| validation:map | Precisão média da média. | Maximizar | 
| validation:merror | Taxa de erro de classificação multiclasse, calculada como \#(casos errados)/\#(todos os casos). | Minimizar | 
| validation:mlogloss | Verossimilhança de log negativa para classificação multiclasse. | Minimizar | 
| validation:ndcg | Ganho cumulativo descontado normalizado. | Maximizar | 
| validation:rmse | Erro quadrático médio. | Minimizar | 

### Hiperparâmetros da XGBoost versão ajustável 0.72
<a name="xgboost-72-tunable-hyperparameters"></a>

Ajuste o XGBoost modelo com os seguintes hiperparâmetros. Os hiperparâmetros que têm o maior efeito na otimização das métricas de XGBoost avaliação são:`alpha`,`min_child_weight`, `subsample``eta`, e. `num_round` 


| Nome do parâmetro | Tipo de parâmetro | Intervalos recomendados | 
| --- | --- | --- | 
| alpha | ContinuousParameterRanges | MinValue: 0, MaxValue 100 | 
| 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 100 | 
| 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 | 