Tipos de datos

En esta página, se describen los tipos de datos que puedes importar a un conjunto de datos de AutoML Tables y cómo esos tipos se asignan a BigQuery o CSV.

Introducción

Cuando importas datos de entrenamiento, AutoML Tables sugiere un tipo de datos para cada columna según el tipo nativo en los datos de entrada y los valores en esa columna. El tipo de datos de la columna es importante, ya que afecta la forma en la que se usa esa columna para entrenar el modelo. Después de importar tus datos, revisa cada columna con el fin de asegurarte de que el tipo de datos que eligió AutoML Tables sea el correcto para tus datos.

Cuando creas el modelo, el conjunto de datos se convierte en una lista de objetos Row, que tiene sus propios tipos de datos. Si usas predicciones en línea, debes convertir tus datos para usar este formato.

Tipos de datos de AutoML Tables

Categórico

El valor categórico representa los valores de una categoría, es decir, un nivel nominal. Los valores difieren solo en función de su nombre sin orden. Puedes usar números para representar valores categóricos, pero los valores no tienen relación numérica entre sí. Es decir, un 1 categórico no es “mayor” que un 0 categórico.

Estos son algunos ejemplos de valores categóricos:

  • Booleano: true, false.
  • País: "USA", "Canada", "China", etcétera.
  • Código de estado HTTP: "200", "404", "500", etcétera.

Los valores categóricos distinguen entre mayúsculas y minúsculas; las variaciones ortográficas se tratan como categorías diferentes (por ejemplo, “Septiembre” y “Setiembre” no se combinan).

Texto

Un valor de texto representa texto de formato libre, que, por lo general, consta de tokens de texto.

Estos son algunos ejemplos de valores de texto:

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

Los campos de texto se analizan en tokens por espacios en blanco para el entrenamiento de modelos.

Numérico

Un valor numérico representa un número ordinal o cuantitativo. Estos números se pueden comparar. Es decir, dos números distintos pueden ser inferiores o superiores entre sí.

AutoML Tables interpreta cualquier string compatible como numérica. Se recortan los espacios en blanco iniciales o finales.

En la siguiente tabla, se muestran todos los formatos compatibles para el tipo de datos numéricos:

Formato Ejemplos Notas
String numérica “101”, “101.5” El carácter de punto (“.”) es el único delimitador decimal válido. “101,5” y “100,000” no son strings numéricas válidas.
Notación científica “1.12345E+11”, “1.12345e+11” Consulta la nota de las strings numéricas sobre los delimitadores decimales.
No es un número “NAN”, “nan”, “+NAN” No se hace distinción entre mayúsculas y minúsculas. Se ignoran los caracteres más (“+”) o menos (“-”) que anteceden. Se interpreta como valor NULL.
Infinito “INF”, “+inf” No se hace distinción entre mayúsculas y minúsculas. Se ignoran los caracteres más (“+”) o menos (“-”) que anteceden. Se interpreta como valor NULL.

Marca de tiempo

Un valor de marca de tiempo refleja un punto en el tiempo, representado como una hora civil con una zona horaria o una marca de tiempo Unix. En la columna de tiempo, solo se pueden usar atributos de tipo de marca de tiempo.

Si no se especifica una zona horaria con la hora civil, se establecerá como UTC de forma predeterminada.

En la siguiente tabla, se muestran todos los formatos de strings de hora compatibles:

Formato Ejemplo Notas
%E4Y-%m-%d “2017-01-30” Consulta la documentación de Abseil para obtener una descripción de este 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-noviembre-2018”
%Y-%m-%dT%H:%M:%E*S%Ez "2019-05-17T23:56:09.05Z" RFC 3339
String de marca de tiempo de Unix en segundos “1541194447” Solo para los períodos comprendidos entre el 01/ene/1990 y el 01/ene/2030.
String de marca de tiempo de Unix en milisegundos “1541194447000”
String de marca de tiempo de Unix en microsegundos “1541194447000000”
String de marca de tiempo de Unix en nanosegundos “1541194447000000000”

Estructura

Se puede usar una estructura para representar un grupo de campos etiquetados. Una estructura tiene una lista de nombres de campos, cada uno asociado con un tipo de datos. La lista de campos y sus tipos de datos debe ser la misma para todos los valores de estructura en una columna.

Estos son algunos ejemplos de estructuras:

  • Presión arterial: {"timestamp": 1535761416, "systolic": 110, "diastolic": 70}
  • Producto: {"name": "iPhone", price: 1000}

Usa el tipo de datos STRUCT de BigQuery para representar las estructuras.

Array

Se puede usar un arreglo para representar una lista de valores. Los valores contenidos deben ser del mismo tipo de datos. Puedes incluir tipos de datos compuestos (structs) en un arreglo; Todos los structs deben tener la misma estructura.

AutoML Tables procesa arreglos como representativos del peso relativo. En otras palabras, los elementos que aparecen más adelante en el arreglo se ponderan más que los elementos que aparecen hacia el principio.

Estos son algunos ejemplos de arreglos:

  • Categorías de producto

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

  • Compras más recientes:

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

  • Registros de usuarios:

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

Usa el tipo de datos ARRAY de BigQuery para representar los arreglos.

Formato del nombre de la columna

Cuando creas tu esquema para BigQuery o tu fila de encabezado para CSV, asigna un nombre a las columnas (atributos) en tus datos de entrenamiento. Los nombres de las columnas pueden incluir cualquier carácter alfanumérico o un guion bajo (_). El nombre de la columna no puede comenzar con un guion bajo.

Tablas de BigQuery

Tipos de datos compatibles

Antes de crear tu tabla de BigQuery, debes saber qué tipos de datos de BigQuery son compatibles y cómo se asignan a los tipos de datos de AutoML Tables.

Tipo de datos de BigQuery ¿Se admite para la importación? Tipos de datos de AutoML Tables
INT64 Numérico, Categórico
NUMERIC S Numérico, Categórico
FLOAT64 Numérico, Categórico
BOOL S Categórico
STRING Texto, Categórico, Numérico
BYTES N
DATE Marca de tiempo, Categórica
DATETIME Marca de tiempo, Categórica
GEOGRAPHY N
TIME Categórico
TIMESTAMP S Marca de tiempo, Categórica
ARRAY Array
STRUCT S Estructura

Archivos CSV

Tipos de datos compatibles

Todos los datos de CSV se importan como strings. Puedes usar los siguientes tipos de datos de AutoML Tables cuando importes con CSV:

  • Texto
  • Categórico
  • Numérico
  • Marca de tiempo

Formato CSV

AutoML Tables usa el formato CSV RFC 4180.

Formato de objeto Row

Cuando solicitas una predicción en línea, debes presentar los datos de predicción como una representación JSON de un objeto Row. En la siguiente tabla, se muestran los formatos de datos admitidos para cada tipo de datos de AutoML Tables. Puedes elegir el formato de datos que te resulte más fácil de proporcionar.

Tipo de datos de AutoML Tables Tipos de datos de objeto Row Formatos
Categórico bool_type true, false
string_value “42”
“azul”
“2014-01-31”
“2014-01-31 13:14:15.123456789”
“21:02:42.118039”
“1553040000” (marca de tiempo UNIX)
Numérico string_value “42.3”
number_value 42.3
Texto string_value “The quick brown fox”
Marca de tiempo string_value “2014-01-31”
“2014-01-31 13:14:15.123456789”
“1553040000” (marca de tiempo de UNIX)
Array list_value [“dog”, “cat”, “fish”]
Estructura struct_value {"field1": "ABC", "field2": 100}

¿Qué sigue?