Introdução à transformação de dados

A engenharia de atributos é o processo que determina quais recursos podem ser úteis no treinamento de um modelo e, em seguida, cria esses atributos por meio da transformação de dados brutos encontrados em arquivos de registros e em outras fontes. Nesta seção, o foco está em como e quando transformar dados numéricos e categóricos, além das vantagens e desvantagens das diferentes abordagens.

Motivos para a transformação de dados

Transformamos recursos principalmente pelos seguintes motivos:

  1. Transformações obrigatórias em relação à compatibilidade de dados. Por exemplo:

    • Converter atributos não numéricos em numéricos. Não é possível fazer a multiplicação de matrizes em uma string. Portanto, precisamos convertê-la em uma representação numérica.
    • Redimensionar entradas para um tamanho fixo. Os modelos lineares e as redes neurais de encaminhamento de feed têm um número fixo de nós de entrada, portanto, os dados de entrada precisam sempre ter o mesmo tamanho. Por exemplo, os modelos de imagem precisam remodelar as imagens no conjunto de dados para um tamanho fixo.
  2. Transformações de qualidade opcionais que podem ajudar o modelo a ter um melhor desempenho. Por exemplo:

    • Tokenização ou letras minúsculas de recursos de texto.
    • Atributos numéricos normalizados (a maioria dos modelos tem melhor desempenho depois disso).
    • Permitir que modelos lineares introduzam não lineares no espaço de atributos.

Falando estritamente, as transformações de qualidade não são necessárias. Seu modelo ainda pode ser executado sem elas. Mas o uso dessas técnicas pode permitir que o modelo forneça melhores resultados.

Onde se transformar?

É possível aplicar transformações ao gerar os dados no disco ou no modelo.

Transformação antes do treinamento

Nessa abordagem, realizamos a transformação antes do treinamento. Esse código é separado do modelo de machine learning.

Vantagens

  • A computação é realizada apenas uma vez.
  • A computação pode analisar todo o conjunto de dados para determinar a transformação.

Desvantagens

  • As transformações precisam ser reproduzidas no momento da previsão. Cuidado com o desvio!
  • Qualquer alteração de transformação requer a nova geração de dados, o que leva a iterações mais lentas.

O desvio é mais perigoso em casos que envolvem veiculação on-line. Na disponibilização off-line, você pode reutilizar o código que gera seus dados de treinamento. Na exibição on-line, o código que cria o conjunto de dados e o código usado para processar o tráfego ativo são quase necessariamente diferentes, o que facilita a introdução de desvios.

Como transformar dentro do modelo

Nessa abordagem, a transformação faz parte do código do modelo. O modelo recebe dados não transformados como entrada e os transforma no modelo.

Vantagens

  • Iterações fáceis. Se você alterar as transformações, ainda poderá usar os mesmos arquivos de dados.
  • Você tem as mesmas transformações garantidas no momento do treinamento e da previsão.

Desvantagens

  • Transformações caras podem aumentar a latência do modelo.
  • As transformações ocorrem por lote.

Há muitas considerações para transformar por lote. Suponha que você queira normalizar um recurso pelo valor médio dele, ou seja, você quer alterar os valores do recurso para ter 0 médio e desvio padrão 1. Ao transformar dentro do modelo, essa normalização terá acesso a apenas um lote de dados, não ao conjunto completo. Você pode normalizar pelo valor médio em um lote (perigoso se os lotes forem altamente variantes) ou pré-calcular a média e corrigi-la como uma constante no modelo. Veremos a normalização na próxima seção.

O tf.Transform

Explore, limpe e visualize seus dados

Analise e limpe seus dados antes de realizar qualquer transformação. Você pode ter realizado algumas das tarefas a seguir durante a coleta e construção do conjunto de dados:

  • Examine várias linhas de dados.
  • Verifique as estatísticas básicas.
  • Corrigir entradas numéricas ausentes

Visualize seus dados com frequência. Os gráficos podem ajudar a encontrar anomalias ou padrões que não estão claros nas estatísticas numéricas. Portanto, antes de avançar na análise, analise seus dados graficamente por gráficos de dispersão ou histogramas. Veja os gráficos não apenas no início do pipeline, mas também em toda a transformação. As visualizações ajudarão você a verificar continuamente suas suposições e a ver os efeitos das principais alterações.