Pular para o conteúdo principal

Preparação de dados para regressão

Este artigo descreve como o site AutoML prepara os dados para o treinamento de regressão e descreve as definições de dados configuráveis. O senhor pode ajustar essas opções durante a configuração do experimento na UI do AutoML.

Para definir essas configurações usando a API do AutoML, consulte a referência da API do AutoML Python.

Tipos de recurso de dados suportados​

Somente os tipos de recurso listados abaixo são compatíveis. Por exemplo, imagens não são suportadas.

Os seguintes tipos de recursos são compatíveis:

  • Numérico (ByteType, ShortType, IntegerType, LongType, FloatType e DoubleType)
  • Booleana
  • Cadeia de caracteres (texto categórico ou em inglês)
  • Carimbos de data e hora (TimestampType, DateType)
  • ArrayType[Numérico] (Databricks Runtime 10.4 LTS MLe acima)
  • DecimalType (Databricks Runtime 11.3 LTS MLe acima)

Impute valores faltantes​

Em Databricks Runtime 10.4 LTS ML e acima, o senhor pode especificar como os valores nulos são imputados. Na interface do usuário, selecione um método no menu suspenso da coluna Impute with no esquema da tabela. Na API, use o parâmetro imputers. Para obter mais informações, consulte AutoML Python API reference.

Em default, AutoML seleciona um método de imputação com base no tipo e no conteúdo da coluna.

nota

Se o senhor especificar um método de imputação que não seja odefault, o AutoML não realizará a detecção do tipo semântico.

Seleção de coluna​

Em Databricks Runtime 10.3 ML e acima, o senhor pode especificar quais colunas AutoML deve usar para treinamento. Para excluir uma coluna na interface do usuário, desmarque-a na coluna Incluir . Na API, use o parâmetro exclude_cols. Para obter mais informações, consulte AutoML Python API reference.

O senhor não pode soltar a coluna selecionada como Alvo de previsão ou como coluna de tempo para dividir os dados.

Em default, todas as colunas são incluídas.

Divida os dados em conjuntos de treinamento, validação e teste​

O AutoML divide seus dados em três divisões para treinamento, validação e teste. Dependendo do tipo de problema de ML, o senhor tem diferentes opções para dividir os dados.

Use os seguintes métodos para dividir os dados em conjuntos de treinamento, validação e teste:

(padrão ) Random split (divisão aleatória ): Se uma estratégia de divisão de dados não for especificada, o site dataset será dividido aleatoriamente em 60% train split, 20% validate split e 20% test split. Para a classificação, uma divisão aleatória estratificada garante que cada classe seja adequadamente representada nos conjuntos de treinamento, validação e teste.

Divisão cronológica : Em Databricks Runtime 10.4 LTS ML e acima, o senhor pode selecionar uma coluna de tempo para criar divisões cronológicas de treinamento, validação e teste. As divisões cronológicas usam os pontos de dados mais antigos para treinamento, os próximos mais antigos para validação e os pontos mais recentes para teste. A coluna de tempo pode ser um carimbo de data/hora, um número inteiro ou uma coluna de cadeias de caracteres.

Divisão manual : Em Databricks Runtime 15.3 ML e acima, o senhor pode usar o API para configurar uma divisão manual. Especifique uma coluna dividida e use os valores train, validate, ou test para identificar as linhas que o senhor deseja usar para treinamento, validação e teste do conjunto de dados. Todas as linhas com valores de coluna dividida diferentes de train, test, ou validate são ignoradas e um alerta correspondente é gerado.

Amostragem de grandes conjuntos de dados​

Embora o AutoML distribua testes de ajuste de hiperparâmetros entre os nós de trabalho de um cluster, cada modelo é treinado em um único nó de trabalho.

O AutoML calcula automaticamente a memória necessária para carregar e treinar seu conjunto de dados e amostra o conjunto de dados, se necessário.

Versão do Databricks Runtime

Comportamento de amostragem

9,1 LTS ML - 10,4 LTS ML

A fração de amostragem é constante e não depende do tipo de nó do clustering ou da memória por nó.

11.x ML

A fração de amostragem aumenta para worker nós com mais memória por núcleo. Para aumentar o tamanho da amostra:

  • Use um tipo de instância com memória otimizada .
  • Ajuste spark.task.cpus na configuração do Spark. O default é 1 e o valor máximo é o número de CPUs no nó worker. O valor máximo é o número de CPUs no nó worker. Quando o senhor aumenta esse valor, o tamanho da amostra é maior, mas menos tentativas são executadas em paralelo.

Exemplo : Em uma máquina com 4 núcleos e 64 GB de RAM:

  • Com spark.task.cpus=1, quatro testes são executados por worker, cada um usando 16 GB de RAM.
  • Com spark.task.cpus=4, uma execução de teste por worker, usando toda a RAM de 64 GB.

11.3 LTS ML e acima

Se o site AutoML fizer uma amostragem do site dataset, a fração de amostragem será mostrada em Overview tab na UI.

12.2 LTS ML e acima

AutoML pode lidar com conjuntos de dados maiores alocando mais núcleos de CPU por treinamento tarefa. Aumente o tamanho da amostra selecionando uma instância com mais memória total.

Versão do Databricks Runtime

Comportamento de amostragem

9,1 LTS ML - 10,4 LTS ML

A fração de amostragem é constante e não depende do tipo de nó do clustering ou da memória por nó.

11.x ML

A fração de amostragem aumenta para worker nós com mais memória por núcleo. Para aumentar o tamanho da amostra:

  • Use um tipo de instância com memória otimizada .
  • Ajuste spark.task.cpus na configuração do Spark. O default é 1 e o valor máximo é o número de CPUs no nó worker. O valor máximo é o número de CPUs no nó worker. Quando o senhor aumenta esse valor, o tamanho da amostra é maior, mas menos tentativas são executadas em paralelo.

Exemplo : Em uma máquina com 4 núcleos e 64 GB de RAM:

  • Com spark.task.cpus=1, quatro testes são executados por worker, cada um usando 16 GB de RAM.
  • Com spark.task.cpus=4, uma execução de teste por worker, usando toda a RAM de 64 GB.

11.3 LTS ML e acima

Se o site AutoML fizer uma amostragem do site dataset, a fração de amostragem será mostrada em Overview tab na UI.

12.2 LTS ML e acima

AutoML pode lidar com conjuntos de dados maiores alocando mais núcleos de CPU por treinamento tarefa. Aumente o tamanho da amostra selecionando uma instância com mais memória total.

Para problemas de classificação, o AutoML usa o método PySpark sampleBy para amostragem estratificada a fim de preservar a distribuição do rótulo de destino.

Para problemas de regressão, o AutoML usa o método PySpark sample.

Detecção de tipo semântico​

nota

Com Databricks Runtime 9.1 LTS ML e acima, AutoML tenta detectar se as colunas têm um tipo semântico diferente do tipo de dados Spark ou Pandas no esquema da tabela. O AutoML trata essas colunas como o tipo semântico detectado. Essas detecções são o melhor esforço e, às vezes, podem ignorar a existência de tipos semânticos. O senhor também pode definir manualmente o tipo semântico de uma coluna ou informar ao site AutoML para não aplicar a detecção de tipo semântico a uma coluna usando a anotação.

Especificamente, o AutoML faz estes ajustes:

  • As colunas de strings e inteiros que representam dados de data ou carimbo de data/hora são tratadas como um tipo de carimbo de data/hora.
  • Colunas de string que representam dados numéricos são tratadas como um tipo numérico.

Com Databricks Runtime 10,1 MLe acima, o AutoML também faz estes ajustes:

  • Colunas numéricas que contêm IDs categóricas são tratadas como uma feição categórica.
  • Colunas de string que contêm texto em inglês são tratadas como uma feição de texto.

Tipo semântico anotação​

Com o Databricks Runtime 10.1 MLe acima, você pode controlar manualmente o tipo semântico atribuído, colocando uma anotação de tipo semântico em uma coluna. Para anotar manualmente o tipo semântico da coluna <column-name> como <semantic-type>, use a seguinte sintaxe:

Python
metadata_dict = df.schema["<column-name>"].metadata
metadata_dict["spark.contentAnnotation.semanticType"] = "<semantic-type>"
df = df.withMetadata("<column-name>", metadata_dict)

<semantic-type> pode ser um dos seguintes:

  • categorical: A coluna contém valores categóricos (por exemplo, valores numéricos que devem ser tratados como IDs).
  • numeric: A coluna contém valores numéricos (por exemplo, valores de string que podem ser analisados em números).
  • datetimeA coluna contém valores de marca de tempo (string, numéricos ou valores de data que podem ser convertidos em marcas de tempo).
  • text: a coluna string contém texto em inglês.

Para desabilitar a detecção de tipo semântico em uma coluna, use a anotação de palavra-chave especial native.