O PS-SMART treina modelos de classificação multiclasse com um algoritmo baseado em GBDT, dimensionado para bilhões de amostras e milhares de nós.
Limitações
A coluna alvo aceita apenas tipos numéricos. Converta dados STRING nas tabelas do MaxCompute antes do treinamento. Exemplo: converta Good/Medium/Bad para 0/1/2.
Em dados no formato KV, os IDs de features devem ser inteiros positivos e os valores das features devem ser números reais. Use o componente serialize para converter IDs de features em string. Aplique engenharia de features (como discretização) a valores categóricos em string.
O componente suporta centenas de milhares de features, mas consome recursos significativos e tem execução lenta. Algoritmos GBDT têm melhor desempenho com features contínuas. Aplique codificação one-hot em features categóricas para filtrar as de baixa frequência. Evite discretizar features contínuas.
O PS-SMART introduz aleatoriedade por meio de amostragem de dados (data_sample_ratio), amostragem de features (fea_sample_ratio), aproximação de histograma e ordem de mesclagem de sketches. As estruturas de árvore podem variar entre workers distribuídos, mas o desempenho do modelo permanece similar. Dados e parâmetros idênticos podem gerar resultados inconsistentes entre execuções.
Aumentar os computing cores acelera o treinamento. O treinamento só inicia após todos os servidores obterem os recursos necessários. Solicitar mais recursos durante congestionamento do cluster aumenta o tempo de espera.
Configure o componente
Método 1: Usar a GUI
Adicione PS-SMART multiclass classification ao workflow do Designer e configure os parâmetros:
|
Tipo de parâmetro |
Parâmetro |
Descrição |
|
Configuração de campos |
Formato esparso |
O formato esparso usa espaços para separar pares KV e dois pontos para separar key e value. Exemplo: 1:0.3 3:0.9. |
|
Colunas de features |
Colunas de features da tabela de entrada. Para formato denso, selecione apenas colunas numéricas (BIGINT ou DOUBLE). No formato KV esparso, onde tanto key quanto value são numéricos, selecione apenas colunas STRING. |
|
|
Coluna de rótulo |
Coluna de rótulo da tabela de entrada. Aceita tipos STRING e numéricos. O armazenamento interno exige tipos numéricos, como 0 e 1 para classificação binária. |
|
|
Coluna de peso |
Coluna de peso para cada linha de amostra. Aceita apenas tipos numéricos. |
|
|
Configuração de parâmetros |
Número de classes |
Quantidade de classes para classificação multiclasse. Se definido como n, os valores da coluna de rótulo devem variar de 0 a n-1. |
|
Tipo de métrica de avaliação |
Tipos disponíveis: verossimilhança logarítmica negativa multiclasse e erro de classificação multiclasse. |
|
|
Número de árvores |
Quantidade de árvores (inteiro positivo). O tempo de treinamento aumenta proporcionalmente. |
|
|
Profundidade máxima da árvore |
Profundidade máxima da árvore. Padrão: 5 (permite até 32 nós folha). |
|
|
Taxa de amostragem de dados |
Proporção de dados amostrados na construção de cada árvore. Crie aprendizes fracos e acelera o treinamento. |
|
|
Taxa de amostragem de features |
Proporção de features amostradas na construção de cada árvore. Gera aprendizes fracos e acelera o treinamento. |
|
|
Coeficiente de penalidade L1 |
Controla a distribuição de tamanho dos nós folha. Valores maiores produzem distribuição mais uniforme. Aumente para evitar overfitting. |
|
|
Coeficiente de penalidade L2 |
Controla a distribuição de tamanho dos nós folha. Valores maiores resultam em distribuição mais uniforme. Aumente para prevenir overfitting. |
|
|
Taxa de aprendizado |
Intervalo: (0,1). |
|
|
Precisão aproximada do sketch |
Limiar de quantil para construção do sketch. Valores menores criam mais buckets. Padrão: 0,03. Não requer configuração manual. |
|
|
Alteração mínima de perda de divisão |
Redução mínima de perda necessária para dividir um nó. Valores maiores geram divisões mais conservadoras. |
|
|
Número de features |
Quantidade de features ou ID máximo de feature. Usado para estimativa de recursos. |
|
|
Viés global |
Valor inicial de previsão para todas as amostras. Também conhecido como pontuação base. |
|
|
Semente do gerador de números aleatórios |
Semente aleatória (inteiro). |
|
|
Tipo de importância de feature |
Tipos de cálculo de importância de feature:
|
|
|
Ajuste de execução |
Número de núcleos |
Quantidade de núcleos de computação. O sistema aloca automaticamente por padrão. |
|
Memória por núcleo |
Memória por núcleo (MB). O sistema faz a alocação automática. Configuração manual raramente é necessária. |
Método 2: Usar comandos PAI
Chame comandos PAI a partir de um componente de script SQL. Para mais detalhes, consulte Scenario 4: Execute PAI commands in a SQL script component.
--Train
PAI -name ps_smart
-project algo_public
-DinputTableName="smart_multiclass_input"
-DmodelName="xlab_m_pai_ps_smart_bi_545859_v0"
-DoutputTableName="pai_temp_24515_545859_2"
-DoutputImportanceTableName="pai_temp_24515_545859_3"
-DlabelColName="label"
-DfeatureColNames="features"
-DenableSparse="true"
-Dobjective="multi:softprob"
-Dmetric="mlogloss"
-DfeatureImportanceType="gain"
-DtreeCount="5"
-DmaxDepth="5"
-Dshrinkage="0.3"
-Dl2="1.0"
-Dl1="0"
-Dlifecycle="3"
-DsketchEps="0.03"
-DsampleRatio="1.0"
-DfeatureRatio="1.0"
-DbaseScore="0.5"
-DminSplitLoss="0"
--Predict
PAI -name prediction
-project algo_public
-DinputTableName="smart_multiclass_input";
-DmodelName="xlab_m_pai_ps_smart_bi_545859_v0"
-DoutputTableName="pai_temp_24515_545860_1"
-DfeatureColNames="features"
-DappendColNames="label,features"
-DenableSparse="true"
-DkvDelimiter=":"
-Dlifecycle="28"
|
Módulo |
Parâmetro |
Obrigatório |
Padrão |
Descrição |
|
Parâmetros de dados |
featureColNames |
Sim |
Nenhum |
Colunas de features da tabela de entrada. Para formato denso, selecione apenas colunas numéricas (BIGINT ou DOUBLE). No formato KV esparso, onde key e value são numéricos, selecione apenas colunas STRING. |
|
labelColName |
Sim |
Nenhum |
Coluna de rótulo da tabela de entrada. Aceita tipos STRING e numéricos. O armazenamento interno requer tipos numéricos. Para classificação multiclasse, os valores devem variar de 0 a n-1, onde n é o número de classes. |
|
|
weightCol |
Não |
Nenhum |
Coluna de peso para cada linha de amostra. Aceita apenas tipos numéricos. |
|
|
enableSparse |
Não |
false |
Indica se os dados estão em formato esparso. Valores: true ou false. O formato esparso usa espaços para separar pares KV e dois pontos para separar key e value. Exemplo: 1:0.3 3:0.9. |
|
|
inputTableName |
Sim |
Nenhum |
Nome da tabela de entrada. |
|
|
modelName |
Sim |
Nenhum |
Nome do modelo de saída. |
|
|
outputImportanceTableName |
Não |
Nenhum |
Nome da tabela de saída para importância de features. |
|
|
inputTablePartitions |
Não |
Nenhum |
Formato: ds=1/pt=1. |
|
|
outputTableName |
Não |
Nenhum |
Tabela de saída no MaxCompute. Formato binário, não legível diretamente. Acessível apenas pelo componente de previsão SMART. |
|
|
lifecycle |
Não |
3 |
Ciclo de vida da tabela de saída (em dias). |
|
|
Parâmetros do algoritmo |
classNum |
Sim |
Nenhum |
Quantidade de classes para classificação multiclasse. Se definido como n, os valores da coluna de rótulo devem variar de 0 a n-1. |
|
objective |
Sim |
Nenhum |
Tipo de função objetivo. Para treinamento de classificação multiclasse, use multi:softprob. |
|
|
metric |
Não |
Nenhum |
Tipo de métrica de avaliação para o conjunto de dados de treinamento. A saída é gravada em stdout na área Logview Coordinator. Tipos:
|
|
|
treeCount |
Não |
1 |
Quantidade de árvores (inteiro positivo). O tempo de treinamento aumenta proporcionalmente. |
|
|
maxDepth |
Não |
5 |
Profundidade máxima da árvore. Intervalo: 1 a 20. |
|
|
sampleRatio |
Não |
1,0 |
Taxa de amostragem de dados. Intervalo: (0,1]. O valor 1,0 desativa a amostragem. |
|
|
featureRatio |
Não |
1,0 |
Taxa de amostragem de features. Intervalo: (0,1]. O valor 1,0 desativa a amostragem. |
|
|
l1 |
Não |
0 |
Coeficiente de penalidade L1. Valores maiores produzem distribuição mais uniforme dos nós folha. Aumente para evitar overfitting. |
|
|
l2 |
Não |
1,0 |
Coeficiente de penalidade L2. Valores maiores resultam em distribuição mais uniforme dos nós folha. Aumente para prevenir overfitting. |
|
|
shrinkage |
Não |
0,3 |
Taxa de aprendizado. Intervalo: (0,1). |
|
|
sketchEps |
Não |
0,03 |
Limiar de quantil para construção do sketch. Contagem de buckets: O(1.0/sketchEps). Valores menores criam mais buckets. Use o valor padrão. Não requer configuração manual. Intervalo: (0,1). |
|
|
minSplitLoss |
Não |
0 |
Redução mínima de perda necessária para dividir um nó. Valores maiores geram divisões mais conservadoras. |
|
|
featureNum |
Não |
Nenhum |
Quantidade de features ou ID máximo de feature. Usado para estimativa de recursos. |
|
|
baseScore |
Não |
0,5 |
Valor inicial de previsão para todas as amostras. Também conhecido como viés global. |
|
|
randSeed |
Não |
Nenhum |
Semente aleatória (inteiro). |
|
|
featureImportanceType |
Não |
gain |
Tipos de cálculo de importância de feature:
|
|
|
Parâmetros de ajuste |
coreNum |
Não |
Alocado pelo sistema |
Quantidade de núcleos de computação. Valores maiores aceleram a execução. |
|
memSizePerCore |
Não |
Alocado pelo sistema |
Memória por núcleo em MB. |
Implantação do modelo
Para implantar o modelo gerado pelo componente PS-SMART como um service online, adicione o componente General-purpose Model Export downstream do componente PS-SMART. Configure os parâmetros do componente da mesma forma que nos demais componentes da série PAI. Para mais informações, consulte General-purpose Model Export.
Após a execução bem-sucedida, implante o service de modelo na página PAI-EAS Model Online Service. Para mais informações, consulte Deploy a service in the console.