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á.
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")
Se você quiser usar versões mais recentes, precisará especificar explicitamente as etiquetas de URI da imagem (consulte Versões aceitas).
Essa versão anterior do XGBoost algoritmo Amazon SageMaker AI é baseada na versão 0.72. XGBoost
Os clientes devem considerar o uso da nova versão do XGBoost algoritmo com Amazon SageMaker AI. 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
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 para o serialize/deserialize the model, which can be used for saving/loading 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 sinalizadorcsv_weights
nos parâmetros e anexar valores de peso na coluna após os rótulos. Por exemplo:label,weight,val_0,val_1,...
).
EC2 Recomendação de instância para a XGBoost versão 0.72
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
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
XGBoost Hiperparâmetros da versão 0.72
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
Nome do parâmetro | Descrição |
---|---|
num_class |
O número de classes. Obrigatório se Valores válidos: inteiro |
num_round |
O número de rodadas para execução do treinamento. Obrigatório Valores válidos: inteiro |
alpha |
Termo de regularização L1 nos pesos. Aumentar esse valor torna os modelos mais conservadores. Opcional Valores válidos: flutuante Valor padrão: 0 |
base_score |
A pontuação de predição inicial de todas as instâncias, a polarização global. Opcional Valores válidos: flutuante Valor padrão: 0.5 |
booster |
O objeto de aumento a ser usado. Os valores Opcional Valores válidos: string. Valor padrão: |
colsample_bylevel |
Taxa de subsampling de colunas para cada divisão, em cada nível. Opcional Valores válidos: flutuante. Intervalo: [0,1]. Valor padrão: 1 |
colsample_bytree |
Taxa de subsampling de colunas ao criar cada árvore. Opcional Valores válidos: flutuante. Intervalo: [0,1]. 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. Opcional Valores válidos: 0 ou 1 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 Opcional Valores válidos: inteiro 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 Opcional Valores válidos: flutuante. Intervalo: [0,1]. 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:
Para obter uma lista de entradas válidas, consulte XGBoost Parâmetros Opcional Valores válidos: string 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. Opcional Valores válidos: flutuante. Intervalo: [0,∞). 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 Opcional Valores válidos: string. Valor padrão: |
lambda |
Termo de regularização L2 nos pesos. Aumentar esse valor torna os modelos mais conservadores. Opcional Valores válidos: flutuante Valor padrão: 1 |
lambda_bias |
Termo de regularização L2 na polarização. Opcional Valores válidos: flutuante. Intervalo: [0.0, 1.0]. Valor padrão: 0 |
max_bin |
O número máximo de compartilhamentos distintos para os atributos contínuos de bucket. Usado somente quando Opcional Valores válidos: inteiro 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. Opcional Valores válidos: inteiro. Intervalo: [0,∞). 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 Opcional Valores válidos: inteiro. Intervalo: [0,∞) Valor padrão: 6 |
max_leaves |
O número máximo de nós a ser adicionado. Relevante apenas quando Opcional Valores válidos: inteiro 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 Opcional Valores válidos: flutuante. Intervalo: [0,∞). Valor padrão: 1 |
normalize_type |
Tipo de algoritmo de normalização. Opcional Valores válidos: tree ou forest. Valor padrão: tree |
nthread |
Número de threads paralelos usado para executar XGBoost. Opcional Valores válidos: inteiro Valor padrão: o número máximo de threads. |
objective |
Especifica a tarefa de aprendizado e o objetivo de aprendizado correspondente. Exemplos: Opcional Valores válidos: string Valor padrão: |
one_drop |
Quando esse sinalizador está habilitado, pelo menos uma árvore é sempre descartada durante o processo. Opcional Valores válidos: 0 ou 1 Valor padrão: 0 |
process_type |
O tipo de processo de aumento a ser executado. Opcional Valores válidos: string. Valor padrão: |
rate_drop |
A taxa de abandono que especifica a fração de árvores anteriores a serem descartadas durante o abandono. Opcional Valores válidos: flutuante. Intervalo: [0.0, 1.0]. Valor padrão: 0.0 |
refresh_leaf |
Este é um parâmetro do plug-in do atualizador "refresh". Quando definido como Opcional Valores válidos: 0/1 Valor padrão: 1 |
sample_type |
Tipo de algoritmo de amostragem. Opcional Valores válidos: Valor padrão: |
scale_pos_weight |
Controla o equilíbrio dos pesos positivos e negativos. É útil para classes desbalanceadas. Um valor típico a ser considerado: Opcional Valores válidos: flutuante Valor padrão: 1 |
seed |
Origem de número aleatório. Opcional Valores válidos: inteiro Valor padrão: 0 |
silent |
0 significa mensagens de execução de impressão, 1 significa modo silencioso. Valores válidos: 0 ou 1 Opcional Valor padrão: 0 |
sketch_eps |
Usado apenas para algoritmo voraz aproximado. Isso se converte em O(1 / número de compartimentos Opcional Valores válidos: flutuante. Intervalo: [0, 1]. Valor padrão: 0.03 |
skip_drop |
Probabilidade de ignorar o procedimento de dropout durante uma iteração de aumento. Opcional Valores válidos: flutuante. Intervalo: [0.0, 1.0]. 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. Opcional Valores válidos: flutuante. Intervalo: [0,1]. Valor padrão: 1 |
tree_method |
O algoritmo de construção de árvores usado em XGBoost. Opcional Valores válidos: Um de Valor padrão: |
tweedie_variance_power |
O parâmetro que controla a variação da distribuição Tweedie. Opcional Valores válidos: flutuante. Intervalo: (1, 2). 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. Para obter uma lista completa de entradas válidas, consulte XGBoost Parâmetros Opcional Valores válidos: string separada por vírgulas. Valor padrão: |
Ajuste e XGBoost libere o modelo 0.72
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.
Métricas calculadas pelo algoritmo XGBoost Release 0.72
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
Nome da métrica | Descrição | 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
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 |