Treine modelos de gradient boosting para tarefas de classificação e regressão com o algoritmo XGBoost.
O PAI estende a biblioteca open-source XGBoost com suporte a computação distribuída e integração à plataforma.
Recursos de computação
Recursos de computação compatíveis:
MaxCompute
Flink
Deep Learning Containers (DLC)
Formatos de dados
Formatos de entrada aceitos: Table ou LibSVM. Especifique o formato na aba Field Setting: use featureCols para o formato Table ou vectorCol para o formato LibSVM (opções mutuamente exclusivas).
Formato Table
Cada linha representa uma instância de treinamento. As colunas armazenam os valores das features e o rótulo.
|
f0 |
f1 |
label |
|
0,1 |
1 |
0 |
|
0,9 |
2 |
1 |
Formato LibSVM
Cada linha contém pares esparsos de feature-valor no formato index:value. Exemplo:
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
Configuração
Configure o componente em três abas:
Field Setting: Estrutura dos dados de entrada e local de armazenamento do modelo.
Parameter Setting: Hiperparâmetros do algoritmo de treinamento XGBoost.
Execution Tuning: Recursos para treinamento distribuído.
Field Setting
|
Parâmetro |
Tipo |
Descrição |
|
labelCol |
String |
Nome da coluna de rótulo. |
|
featureCols |
Array de strings |
Colunas de features no formato Table. Mutuamente exclusivo com vectorCol. Requer dados de entrada no formato Table. |
|
vectorCol |
String |
Nome da coluna vetorial no formato LibSVM. Mutuamente exclusivo com featureCols. Requer dados de entrada no formato LibSVM. |
|
weightCol |
String |
Nome da coluna de peso. |
|
set the model file path |
String |
Caminho do bucket OSS para armazenar o modelo treinado. |
Parameter Setting
Hiperparâmetros padrão do XGBoost.
Objetivo de treinamento
|
Parâmetro |
Tipo |
Padrão |
Descrição |
|
The number of rounds for boosting |
Inteiro |
-- |
Número de iterações de boosting. |
|
objective |
String |
binary:logistic |
Tarefa de aprendizado e objetivo correspondente. |
|
Base score |
Número de ponto flutuante |
0,5 |
Viés global usado como pontuação inicial de previsão para todas as instâncias. |
|
The number of classes |
Inteiro |
-- |
Quantidade de classes. Obrigatório para classificação multiclasse. |
Construção de árvore
|
Parâmetro |
Tipo |
Padrão |
Descrição |
|
Tree Method |
String |
auto |
Algoritmo de construção da árvore. Valores válidos: auto, exact, approx, hist. |
|
Maximum depth of a tree |
Inteiro |
6 |
Profundidade máxima da árvore. Valores maiores aumentam a complexidade do modelo e o risco de overfitting. |
|
Max leaves |
Inteiro |
0 |
Número máximo de nós folha. O valor 0 indica ausência de limite. |
|
Grow Policy |
String |
depthwise |
Estratégia de adição de nós. Valores válidos: depthwise, lossguide. |
|
Maximum number of discrete bins to bucket continuous features |
Inteiro |
256 |
Número máximo de bins discretos para features contínuas. Aplica-se apenas quando Tree Method é hist. |
|
sketch_eps |
Número de ponto flutuante |
0,03 |
Precisão do binning no algoritmo de sketching. Aplica-se apenas quando Tree Method é approx. |
Regularização
|
Parâmetro |
Tipo |
Padrão |
Descrição |
|
L1 regularization term on weights |
Número de ponto flutuante |
0,0 |
Regularização L1 nos pesos. Valores mais altos geram modelos mais conservadores. |
|
L2 regularization term on weights |
Número de ponto flutuante |
1,0 |
Regularização L2 nos pesos. Valores mais altos geram modelos mais conservadores. |
|
gamma |
Número de ponto flutuante |
0,0 |
Redução mínima de perda necessária para particionar ainda mais um nó folha. |
|
Min child weight |
Número de ponto flutuante |
1,0 |
Soma mínima dos pesos das instâncias exigida em um nó filho. |
|
Max delta step |
Número de ponto flutuante |
0,0 |
Passo delta máximo por nó folha. Controla a granularidade da atualização do modelo. |
Taxa de aprendizado e amostragem
|
Parâmetro |
Tipo |
Padrão |
Descrição |
|
eta |
Número de ponto flutuante |
0,3 |
Taxa de aprendizado. Valores menores melhoram a robustez, mas exigem mais rodadas de boosting. |
|
scale_pos_weight |
Número de ponto flutuante |
1,0 |
Razão de peso para equilibrar classes positivas e negativas. Útil para conjuntos de dados desbalanceados. |
|
Subsample ratio of the training instances |
Número de ponto flutuante |
1 |
Fração das instâncias de treinamento amostradas antes de cada rodada de boosting. |
|
Sampling method |
String |
GRADIENT_BASED |
Método de amostragem para instâncias de treinamento. Valores válidos: GRADIENT_BASED, UNIFORM. |
|
Subsample ratio of columns for each level |
Número de ponto flutuante |
1,0 |
Fração de colunas amostradas por nível da árvore. |
|
Subsample ratio of columns for each node (split) |
Número de ponto flutuante |
1,0 |
Fração de colunas amostradas por divisão de nó. |
|
Subsample ratio of columns when constructing each tree |
Número de ponto flutuante |
1,0 |
Fração de colunas amostradas por árvore. |
Restrições e distribuição
|
Parâmetro |
Tipo |
Padrão |
Descrição |
|
Interaction constraints |
String |
-- |
Grupos de features com permissão para interagir. |
|
Monotone constraints |
String |
-- |
Restrições de monotonicidade por feature. |
|
Tweedie variance power |
Número de ponto flutuante |
1,5 |
Potência da variância da distribuição Tweedie. Aplica-se apenas quando o objetivo utiliza a distribuição Tweedie. |
Execution Tuning
|
Parâmetro |
Tipo |
Valores válidos |
Descrição |
|
Number of Workers |
Inteiro positivo |
[1, 9999] |
Quantidade de nós workers. Configure juntamente com Memory per worker, unit MB. |
|
Memory per worker, unit MB |
Inteiro positivo |
[1024, 64 x 1024] |
Memória alocada por nó worker, em MB. |
Exemplo de uso
Este exemplo demonstra a classificação com XGBoost em dados de eventos de bósons de Higgs usando um modelo predefinido. Para crie esse pipeline a partir do modelo Use XGBoost algorithm to identify the Higgs boson, consulte Criar um pipeline a partir de um modelo predefinido.
Converter o formato de saída para avaliação
O componente gera strings JSON serializadas pela biblioteca open-source XGBoost. Converta essa saída para permitir que os componentes de avaliação processem as previsões.
Adicione um componente SQL Script downstream do XGboost Predict. O SQL Script converte as previsões para o formato exigido pelo Binary classification Evaluation V2. Use este 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})
Referências
Para inferência offline com um modelo treinado, use o componente XGboost Predict. Consulte XGboost Predict.
Para obter a lista completa de componentes de algoritmo, consulte Referência de componentes: Visão geral de todos os componentes.