Dados de pré-processamento para algoritmos tabulares integrados

Nesta página, você lerá sobre a visão geral de como o AI Platform Training pré-processa os dados de treinamento com algoritmos tabulares integrados. Além disso, você verá os requisitos e as limitações dos dados de entrada.

Algoritmos tabulares integrados

Os algoritmos integrados que aceitam dados tabulares (dados numéricos e categóricos) têm alguns recursos de pré-processamento.

Para detalhes específicos sobre como o pré-processamento funciona para cada algoritmo tubular integrado, consulte o guia correspondente:

A versão distribuída do algoritmo XGBoost não aceita o pré-processamento automático.

Formatar dados de entrada

Os dados de entrada precisam estar em um arquivo CSV com codificação UTF-8.

Prepare o arquivo CSV de entrada para atender aos seguintes requisitos:

  • Remova a linha do cabeçalho. A linha do cabeçalho contém os rótulos de cada coluna. Remova a linha do cabeçalho para evitar enviá-la com o restante das instâncias de dados como parte dos dados de treinamento.
  • Verifique se a coluna de destino é a primeira. A coluna de destino contém o valor que você está tentando prever. Para um algoritmo de classificação, todos os valores na coluna de destino são uma classe ou uma categoria. Para um algoritmo de regressão, todos os valores na coluna de destino são um valor numérico.

Como funciona o pré-processamento

O pré-processamento automático funciona para dados categóricos e numéricos. A rotina de pré-processamento primeiro analisa e, depois, transforma os dados.

Análise

Primeiro, o AI Platform Training analisa o conjunto de dados coluna por coluna. Para cada coluna, o AI Platform Training detecta automaticamente o tipo de dados, identifica como a coluna precisa ser tratada para transformação de dados e calcula algumas estatísticas dos dados na coluna. O job de treinamento captura os resultados dessa análise no arquivo metadata.json, incluído em outros artefatos de treinamento no seu bucket do Cloud Storage.

  • Tipo: é possível que a coluna seja numérica ou categórica.
  • Tratamento: o algoritmo identifica como tratar cada coluna. É possível que as colunas sejam tratadas como constants ou constants. Também é possível que as colunas categóricas também sejam marcadas como identidade ou vocabulário, com base nos valores categóricos: inteiros ou strings. Uma coluna com um grande número de categorias recebe um tratamento de hash para calcular um número menor e mais gerenciável de categorias.
  • Estatísticas: as estatísticas são calculadas para transformar os atributos em cada coluna, com base no tipo e no tratamento da coluna.

Transformação

Após a conclusão da análise inicial do conjunto de dados, o AI Platform Training transforma os dados com base nos tipos, tratamentos e estatísticas aplicados ao conjunto de dados. O AI Platform Training faz transformações na ordem a seguir:

  1. Divide o conjunto de dados de treinamento em conjuntos de dados de validação e teste se você especificar as porcentagens divididas.
  2. Remove linhas que não tenham mais de 10% dos atributos.
  3. Preenche valores não encontrados. A média é usada em colunas numéricas. Para XGBoost, zeros são usados em colunas categóricas.

Transformações de exemplo

As linhas sem 10% dos valores são removidas. Nos exemplos a seguir, suponhamos que a linha tenha 10 valores. Para simplificar, as linhas de exemplo estão truncadas.

Problema da linha Valores originais Valores transformados Explicação
Linha de exemplo com todos os valores [3, 0.45, ...,
'fruits', 0, 1]
[3, 0.45, ...,
1, 0, 0, 0, 1]
A string 'fruits' é transformada nos valores "1, 0, 0" em codificação one-hot. Em algoritmos baseados no TensorFlow, isso acontece no gráfico do TensorFlow. Para o XGBoost, o AI Platform Training faz essa transformação.
Muitos valores não encontrados [3, 0.45, ...,
'fruits', __, __]
A linha é removida Mais de 10% dos valores na linha não foram encontrados.
Valor numérico não encontrado [3, 0.45, ...,
'fruits', 0, __]
[3, 0.45, ...,
1, 0, 0, 0, 0.54]
  • O valor médio da coluna substitui o valor numérico não encontrado. Neste exemplo, a média é 0,54.
  • A string 'fruits' é transformada nos valores "1, 0, 0" em codificação one-hot. Em algoritmos baseados no TensorFlow, isso acontece no gráfico do TensorFlow. Para o XGBoost, o AI Platform Training faz essa transformação.
Valor categórico não encontrado [3, 0.45, ...,
__, 0, 1]
[3, 0.45, ...,
0, 0, 0, 0, 1]
  • O valor categórico não encontrado é transformado nos valores "0, 0, 0" em codificação one-hot. Em algoritmos baseados no TensorFlow, isso acontece no gráfico do TensorFlow. Para o XGBoost, o AI Platform Training faz essa transformação.

Há mais diferenças no processo de transformação, dependendo do framework de ML em que o algoritmo integrado se baseia. Para os algoritmos integrados baseados no TensorFlow (aprendizagem linear, amplitude e profundidade), os tratamentos de coluna correspondem diretamente a quais colunas de atributos são criadas no modelo do TensorFlow. O AI Platform Training simplesmente atribui colunas de atributos ao modelo do TensorFlow Estimator e, em seguida, a transformação de dados se torna parte do pré-processamento que ocorre no modelo do TensorFlow Estimador.

Do contrário, assim como acontece com XGBoost, o AI Platform Training aplica tratamentos de coluna e gera as transformações de dados diretamente.

A seguir