Tipos de dados

Nesta página, você conhecerá os tipos de dados que podem ser importados para um conjunto de dados no AutoML Tables e saberá como eles são mapeados para tabelas do BigQuery ou arquivos CSV.

Introdução

Quando você importa dados de treinamento, o AutoML Tables sugere um tipo de dados para cada coluna com base no tipo nativo nos dados de entrada e nos valores na coluna. O tipo de dados da coluna é importante porque afeta o modo como ela é usada no treinamento do modelo. Após importar os dados, revise cada coluna para garantir que o tipo escolhido pelo AutoML Tables é o correto.

Quando você cria o modelo, o conjunto de dados é convertido em uma lista de objetos Row, que têm tipos de dados próprios. Para usar predições on-line, é necessário converter os dados para o formato adequado.

Tipos de dados do AutoML Tables

Categórico

O valor categórico representa valores em uma categoria, ou seja, trata-se de um nível nominal. Os valores diferem apenas com base no nome, sem qualquer ordem. É possível usar números para representar valores categóricos, mas eles não terão relação numérica entre si. Isso quer dizer que o valor categórico 1 não é “maior” que o valor categórico 0.

Veja abaixo alguns exemplos de valores categóricos:

  • Booleano - true, false.
  • País - "USA", "Canada", "China" e assim por diante.
  • Código de status HTTP - "200", "404", "500" e assim por diante.

Valores categóricos diferenciam maiúsculas de minúsculas. As variações ortográficas são tratadas como categorias diferentes, por exemplo, “Contato” e “Contacto” não são combinadas.

Texto

Um valor de texto representa um texto de formato livre, normalmente composto de tokens de texto.

Veja abaixo alguns exemplos de valores de texto:

  • "The quick brown fox"
  • "This restaurant is the best! The food is delicious"

Campos de texto são divididos em tokens com base nos espaços em branco para fins de treinamento do modelo.

Numérico

Um valor numérico representa um número ordinal ou quantitativo. Esses números podem ser comparados, ou seja, um número pode ter grandeza maior ou menor que outro número distinto.

O AutoML Tables interpreta qualquer string compatível como numérica. O espaço em branco inicial ou final é cortado.

A tabela a seguir mostra todos os formatos compatíveis para o tipo de dado numérico:

Formato Examples Observações
String numérica "101", 101,5" O caractere ponto final (".") é o único delimitador decimal válido. "101,5" e "100.000" não são strings numéricas válidas.
Notação científica "1,12345E+11", "1,12345e+11" Consulte a observação para strings numéricas em relação aos delimitadores decimais.
Não é um número "NAN", "nan", "+NAN" Não há distinção entre maiúsculas e minúsculas. Os caracteres precedentes mais ("+") ou menos ("-") são ignorados. Interpretado como valor NULL.
Infinito "INF", "+inf" Não há distinção entre maiúsculas e minúsculas. Os caracteres precedentes mais ("+") ou menos ("-") são ignorados. Interpretado como valor NULL.

Carimbo de data/hora

Um valor de carimbo de data/hora significa um momento no tempo, representado como hora civil de um fuso horário ou um carimbo de data/hora do Unix. Apenas os atributos do tipo carimbo de data/hora podem ser usados na coluna Data/hora.

Se o tempo civil não for especificado no fuso horário, o padrão será o UTC.

A tabela a seguir mostra todos os formatos de string de data e hora compatíveis:

Formato Exemplo Observações
%E4Y-%m-%d "2017-01-30" Consulte a documentação do Abseil para ver uma descrição desse formato.
%E4Y/%m/%d "2017/01/30"
%Y/%m/%d %H:%M:%E*S "2017/01/30 23:59:58"
%d-%m-%E4Y "30-11-2018"
%d/%m/%E4Y "30/11/2018"
%d-%B-%E4Y "30-November-2018"
%Y-%m-%dT%H:%M:%E*S%Ez "2019-05-17T23:56:09.05Z" RFC 3339
String de carimbo de data/hora do Unix em segundos "1541194447" Apenas para períodos entre 01/Jan/1990 e 01/Jan/2030.
String de carimbo de data/hora do Unix em milissegundos "1541194447000"
String de carimbo de data/hora do Unix em microssegundos "1541194447000000"
String de carimbo de data/hora do Unix em nanossegundos "1541194447000000000"

Struct

Uma struct pode ser usada para representar um grupo de campos rotulados. Ela contém uma lista de nomes de campos, cada um associado a um tipo de dados. É necessário que a lista de campos e os tipos de dados correspondentes sejam iguais em todos os valores de struct de uma coluna.

Veja alguns exemplos de structs:

  • Pressão arterial - {"timestamp": 1535761416, "systolic": 110, "diastolic": 70}
  • Produto - {"name": "iPhone", price: 1000}

Use o tipo de dados “STRUCT” no BigQuery para representar as structs.

Matriz

Uma matriz pode ser usada para representar uma lista de valores. Os valores contidos precisam ser do mesmo tipo de dados. É possível incluir tipos de dados compostos (estruturas) em uma matriz; Todas as estruturas precisam ter a mesma estrutura.

O AutoML Tables processa matrizes como representações do peso relativo. Isto é, os itens que aparecem mais tarde em uma matriz têm mais peso do que aqueles que aparecem no início.

Veja alguns exemplos de matrizes:

  • Categorias de produtos:

    ["Clothing", "Women", "Dress", ...]

  • Compras mais recentes:

    ["iPhone", "Laptop", "Suitcase", ...]

  • Registros de usuário:

    [{"name": "Joelle", ID: 4093}, {"name": "Chloe", ID: 2047}, {"name": "Neko", ID: 3432}, ...]

Use o tipo de dados “ARRAY” no BigQuery para representar as matrizes.

Formato do nome da coluna

As colunas (atributos) nos dados de treinamento são nomeadas no esquema da tabela do BigQuery ou na linha de cabeçalho do arquivo CSV. Nomes de colunas podem incluir qualquer caractere alfanumérico ou sublinhado (_). O nome da coluna não pode começar com um caractere sublinhado.

Tabelas do BigQuery

Tipos de dados compatíveis

Antes de criar uma tabela do BigQuery, você precisa conhecer os tipos de dados compatíveis e como eles são mapeados para os tipos de dados do AutoML Tables.

Tipo de dados do BigQuery Compatível para importação? Tipos de dados do AutoML Tables
INT64 S Numérico, categórico
NUMERIC S Numérico, categórico
FLOAT64 S Numérico, categórico
BOOL S Categórico
STRING S Texto, categórico, numérico
BYTES N
DATE S Carimbo de data/hora, categórico
DATETIME S Carimbo de data/hora, categórico
GEOGRAPHY N
TIME S Categórico
TIMESTAMP S Carimbo de data/hora, categórico
ARRAY S Matriz
STRUCT S Struct

Arquivos CSV

Tipos de dados compatíveis

Todos os dados de um arquivo CSV são importados como strings. Ao importar usando arquivos CSV, é possível usar os seguintes tipos de dados do AutoML Tables:

  • Texto
  • Categórico
  • Numérico
  • Carimbo de data/hora

Formato CSV

O AutoML Tables usa o formato CSV RFC 4180 (em inglês).

Formato de objeto Row

Ao solicitar uma predição on-line, é necessário apresentar os dados de predição como uma representação JSON de um objeto Row. Veja na tabela abaixo os formatos de dados aceitáveis para todos os tipos de dados do AutoML Tables. Escolha o formato de dados que for mais fácil de fornecer.

Tipo de dados do AutoML Tables Tipos de dados do objeto Row Formatos
Categórico bool_type verdadeiro, falso
string_value "42"
"azul"
"2014-01-31"
"2014-01-31 13:14:15.123456789"
"21:02:42.118039"
"1553040000" (carimbo de data/hora do UNIX)
Numérico string_value “42,3”
number_value 42.3
Texto string_value “A raposa marrom ligeira”
Carimbo de data/hora string_value "2014-01-31"
"2014-01-31 13:14:15.123456789"
"1553040000" (carimbo de data/hora do UNIX)
Matriz list_value [“cão”, “gato”, “peixe”]
Struct struct_value {"field1": "ABC", "field2": 100}

A seguir