Usar BigQuery DataFrames
BigQuery DataFrames proporciona una API de Python para DataFrames y aprendizaje automático (ML) basada en el motor de BigQuery.
BigQuery DataFrames es un paquete de código abierto. Puedes ejecutar pip install --upgrade bigframes
para instalar la versión más reciente.
BigQuery DataFrames proporciona tres bibliotecas:
bigframes.pandas
proporciona una API de pandas que puedes usar para analizar y manipular datos en BigQuery. Muchas cargas de trabajo se pueden migrar de pandas a bigframes con solo cambiar algunas importaciones. La APIbigframes.pandas
es escalable para admitir el procesamiento de terabytes de datos de BigQuery y usa el motor de consultas de BigQuery para realizar cálculos.bigframes.bigquery
proporciona muchas funciones de BigQuery SQL que puede que no tengan un equivalente en pandas.bigframes.ml
proporciona una API similar a la API de scikit-learn para el aprendizaje automático. Las funciones de aprendizaje automático de los DataFrames de BigQuery te permiten preprocesar datos y, a continuación, entrenar modelos con esos datos. También puedes encadenar estas acciones para crear flujos de datos.
Roles obligatorios
Para obtener los permisos que necesitas para completar las tareas de este documento, pide a tu administrador que te asigne los siguientes roles de gestión de identidades y accesos en tu proyecto:
-
Usuario de tareas de BigQuery (
roles/bigquery.jobUser
) -
Usuario con acceso a sesiones de lectura de BigQuery (
roles/bigquery.readSessionUser
) -
Usar BigQuery DataFrames en un cuaderno de BigQuery:
-
Usuario de BigQuery (
roles/bigquery.user
) -
Usuario de tiempo de ejecución de cuaderno (
roles/aiplatform.notebookRuntimeUser
) -
Creador de código (
roles/dataform.codeCreator
)
-
Usuario de BigQuery (
-
Usar funciones remotas de BigQuery DataFrames:
-
Editor de datos de BigQuery (
roles/bigquery.dataEditor
) -
Administrador de conexiones de BigQuery (
roles/bigquery.connectionAdmin
) -
Desarrollador de Cloud Functions (
roles/cloudfunctions.developer
) -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) -
Lector de objetos de Storage (
roles/storage.objectViewer
)
-
Editor de datos de BigQuery (
-
Usar modelos remotos de aprendizaje automático de DataFrames de BigQuery:
Administrador de conexión de BigQuery (
roles/bigquery.connectionAdmin
)
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Además, cuando se usan funciones remotas de DataFrames de BigQuery o modelos remotos de ML de DataFrames de BigQuery, se necesita el rol Administrador de gestión de identidades y accesos del proyecto (roles/resourcemanager.projectIamAdmin
) si se usa una conexión predeterminada de BigQuery, o el rol Navegador (roles/browser
) si se usa una conexión preconfigurada. Este requisito se puede evitar si se define la opción bigframes.pandas.options.bigquery.skip_bq_connection_check
como True
. En ese caso, la conexión (predeterminada o preconfigurada) se usa tal cual, sin comprobar si existe o si tiene permisos. Si usas la conexión preconfigurada y te saltas la comprobación de la conexión, verifica lo siguiente:
- La conexión se crea en la ubicación correcta.
- Si usas funciones remotas de DataFrames de BigQuery, la cuenta de servicio tiene el rol de invocador de Cloud Run (
roles/run.invoker
) en el proyecto. - Si usas modelos remotos de aprendizaje automático de DataFrames de BigQuery, la cuenta de servicio tiene el rol de usuario de Vertex AI (
roles/aiplatform.user
) en el proyecto.
Cuando realizas la autenticación de usuarios finales en un entorno interactivo, como un cuaderno, un REPL de Python o la línea de comandos, BigQuery DataFrames te pide que te autentiques si es necesario. Si no, consulta cómo configurar las credenciales predeterminadas de la aplicación en distintos entornos.
Configurar las opciones de instalación
Después de instalar BigQuery DataFrames, puede especificar las siguientes opciones.
Ubicación y proyecto
Debe especificar la ubicación y el proyecto en los que quiera usar los DataFrames de BigQuery.
Puedes definir la ubicación y el proyecto en tu cuaderno de la siguiente manera:
Ubicación del tratamiento de datos
BigQuery DataFrames se ha diseñado para ofrecer escalabilidad, lo que consigue manteniendo los datos y el procesamiento en el servicio de BigQuery. Sin embargo, puedes introducir datos en la memoria de tu máquina cliente llamando a .to_pandas()
en un objeto DataFrame o Series
. Si decides hacerlo, se aplicará la limitación de memoria de tu máquina cliente.
Migrar a la versión 2.0 de BigQuery DataFrames
La versión 2.0 de BigQuery DataFrames mejora la seguridad y el rendimiento de la API BigQuery DataFrames, añade nuevas funciones e introduce cambios incompatibles. En este documento se describen los cambios y se ofrecen directrices para la migración. Puedes aplicar estas recomendaciones antes de instalar la versión 2.0 usando la versión 1.x más reciente de BigQuery DataFrames.
La versión 2.0 de BigQuery DataFrames ofrece las siguientes ventajas:
- Las consultas son más rápidas y se crean menos tablas cuando ejecutas consultas que devuelven resultados al cliente, porque
allow_large_results
tiene el valor predeterminadoFalse
. Esto puede reducir los costes de almacenamiento, sobre todo si usas la facturación por bytes físicos. - Seguridad mejorada de forma predeterminada en las funciones remotas implementadas por los DataFrames de BigQuery.
Instalar la versión 2.0 de BigQuery DataFrames
Para evitar cambios que provoquen errores, fija una versión específica de BigQuery DataFrames en tu archivo requirements.txt
(por ejemplo, bigframes==1.42.0
) o en tu archivo pyproject.toml
(por ejemplo, dependencies = ["bigframes = 1.42.0"]
). Cuando quieras probar la versión más reciente, puedes ejecutar pip install --upgrade bigframes
para instalarla.
Usa la opción allow_large_results
BigQuery tiene un límite de tamaño de respuesta máximo para las tareas de consulta.
A partir de la versión 2.0 de BigQuery DataFrames, BigQuery DataFrames aplica este límite de forma predeterminada en los métodos que devuelven resultados al cliente, como peek()
, to_pandas()
y to_pandas_batches()
. Si tu trabajo devuelve resultados de gran tamaño, puedes definir allow_large_results
como True
en tu objeto BigQueryOptions
para evitar cambios incompatibles. Esta opción está activada False
de forma predeterminada en la versión 2.0 de BigQuery DataFrames.
import bigframes.pandas as bpd bpd.options.bigquery.allow_large_results = True
Puede anular la opción allow_large_results
mediante el parámetro allow_large_results
en to_pandas()
y otros métodos. Por ejemplo:
bf_df = bpd.read_gbq(query) # ... other operations on bf_df ... pandas_df = bf_df.to_pandas(allow_large_results=True)
Usar el decorador @remote_function
La versión 2.0 de BigQuery DataFrames introduce algunos cambios en el comportamiento predeterminado del decorador @remote_function
.
Se aplican argumentos de palabras clave a los parámetros ambiguos
Para evitar que se pasen valores a un parámetro no deseado, BigQuery DataFrames 2.0 y versiones posteriores obligan a usar argumentos de palabras clave para los siguientes parámetros:
bigquery_connection
reuse
name
packages
cloud_function_service_account
cloud_function_kms_key_name
cloud_function_docker_repository
max_batching_rows
cloud_function_timeout
cloud_function_max_instances
cloud_function_vpc_connector
cloud_function_memory_mib
cloud_function_ingress_settings
Cuando utilice estos parámetros, indique el nombre del parámetro. Por ejemplo:
@remote_function( name="my_remote_function", ... ) def my_remote_function(parameter: int) -> str: return str(parameter)
Definir una cuenta de servicio
Desde la versión 2.0, BigQuery DataFrames ya no usa la cuenta de servicio de Compute Engine de forma predeterminada para las funciones de Cloud Run que implementa. Para limitar los permisos de la función que despliegues,
- Crea una cuenta de servicio con los permisos mínimos.
- Proporciona el correo de la cuenta de servicio al parámetro
cloud_function_service_account
del decorador@remote_function
.
Por ejemplo:
@remote_function( cloud_function_service_account="my-service-account@my-project.iam.gserviceaccount.com", ... ) def my_remote_function(parameter: int) -> str: return str(parameter)
Si quieres usar la cuenta de servicio de Compute Engine, puedes definir el parámetro cloud_function_service_account
del decorador @remote_function
en "default"
. Por ejemplo:
# This usage is discouraged. Use only if you have a specific reason to use the # default Compute Engine service account. @remote_function(cloud_function_service_account="default", ...) def my_remote_function(parameter: int) -> str: return str(parameter)
Definir la configuración de Ingress
A partir de la versión 2.0, BigQuery DataFrames define los ajustes de entrada de las funciones de Cloud Run que implementa en "internal-only"
. Antes, los ajustes de entrada se definían como "all"
de forma predeterminada. Para cambiar la configuración de entrada, define el parámetro cloud_function_ingress_settings
del decorador @remote_function
.
Por ejemplo:
@remote_function(cloud_function_ingress_settings="internal-and-gclb", ...) def my_remote_function(parameter: int) -> str: return str(parameter)
Usar endpoints personalizados
En las versiones de BigQuery DataFrames anteriores a la 2.0, si una región no admitía endpoints de servicio regionales y bigframes.pandas.options.bigquery.use_regional_endpoints = True
, BigQuery DataFrames recurría a endpoints de ubicación. La versión 2.0 de BigQuery DataFrames elimina este comportamiento alternativo. Para conectarte a los endpoints de ubicación en la versión 2.0, define la opción bigframes.pandas.options.bigquery.client_endpoints_override
. Por ejemplo:
import bigframes.pandas as bpd bpd.options.bigquery.client_endpoints_override = { "bqclient": "https://LOCATION-bigquery.googleapis.com", "bqconnectionclient": "LOCATION-bigqueryconnection.googleapis.com", "bqstoragereadclient": "LOCATION-bigquerystorage.googleapis.com", }
Sustituye LOCATION por el nombre de la ubicación de BigQuery a la que quieras conectarte.
Usar el módulo bigframes.ml.llm
En la versión 2.0 de BigQuery DataFrames, el valor predeterminado de model_name
para GeminiTextGenerator
se ha actualizado a "gemini-2.0-flash-001"
. Te recomendamos que proporciones un model_name
directamente para evitar que se produzcan errores si el modelo predeterminado cambia en el futuro.
import bigframes.ml.llm model = bigframes.ml.llm.GeminiTextGenerator(model_name="gemini-2.0-flash-001")
Manipulación de datos
En las siguientes secciones se describen las funciones de manipulación de datos de los DataFrames de BigQuery. Puedes encontrar las funciones que se describen en la biblioteca bigframes.bigquery
.
API de pandas
Una característica destacable de BigQuery DataFrames es que la API bigframes.pandas
se ha diseñado para que sea similar a las APIs de la biblioteca pandas. Este diseño te permite usar patrones de sintaxis
conocidos para las tareas de manipulación de datos. Las operaciones definidas a través de la API BigQuery DataFrames se ejecutan del lado del servidor, operando directamente en los datos almacenados en BigQuery y eliminando la necesidad de transferir conjuntos de datos fuera de BigQuery.
Para consultar qué APIs de pandas son compatibles con BigQuery DataFrames, consulta APIs de pandas compatibles.
Inspeccionar y manipular datos
Puedes usar la API bigframes.pandas
para realizar operaciones de inspección y cálculo de datos. En el siguiente código de ejemplo se usa la biblioteca bigframes.pandas
para inspeccionar la columna body_mass_g
, calcular la media body_mass
y
calcular la media body_mass
por species
:
Biblioteca de BigQuery
La biblioteca de BigQuery proporciona funciones de SQL de BigQuery que puede que no tengan un equivalente en pandas. En las siguientes secciones se muestran algunos ejemplos.
Procesar valores de matriz
Puedes usar la función bigframes.bigquery.array_agg()
de la biblioteca bigframes.bigquery
para agregar valores después de una operación groupby
:
También puedes usar las funciones de matriz array_length()
y array_to_string()
.
Crear un objeto Series
struct
Puedes usar la función bigframes.bigquery.struct()
de la biblioteca
bigframes.bigquery
para crear un objeto Series
struct con
subcampos para cada columna de un DataFrame:
Convertir marcas de tiempo en épocas de Unix
Puedes usar la función bigframes.bigquery.unix_micros()
de la biblioteca bigframes.bigquery
para convertir marcas de tiempo en microsegundos de Unix:
También puedes usar las funciones de tiempo unix_seconds()
y unix_millis()
.
Usar la función escalar de SQL
Puedes usar la función bigframes.bigquery.sql_scalar()
de la biblioteca bigframes.bigquery
para acceder a una sintaxis SQL arbitraria que represente una expresión de una sola columna:
Funciones de Python personalizadas
BigQuery DataFrames te permite convertir tus funciones de Python personalizadas en artefactos de BigQuery que puedes ejecutar a gran escala en objetos de BigQuery DataFrames. Esta compatibilidad con la extensibilidad te permite realizar operaciones que no son posibles con las APIs de BigQuery DataFrames y SQL, por lo que puedes aprovechar las bibliotecas de código abierto. Las dos variantes de este mecanismo de extensibilidad se describen en las secciones siguientes.
Funciones definidas por el usuario (UDF)
Con las funciones definidas por el usuario (vista previa), puedes convertir tu función de Python personalizada en una función definida por el usuario de Python. Para ver un ejemplo de uso, consulta Crear una FDU de Python persistente.
Al crear una UDF en BigQuery DataFrames, se crea una rutina de BigQuery como UDF de Python en el conjunto de datos especificado. Para ver el conjunto completo de parámetros admitidos, consulta udf.
Limpieza
Además de limpiar los artefactos de la nube directamente en la Google Cloud consola
o con otras herramientas, puedes limpiar las funciones definidas por el usuario de DataFrames de BigQuery que se hayan creado con un argumento de nombre explícito mediante el comando bigframes.pandas.get_global_session().bqclient.delete_routine(routine_id)
.
Requisitos
Para usar una función definida por el usuario de BigQuery DataFrames, habilita la API de BigQuery en tu proyecto. Si proporciona el parámetro bigquery_connection
en su proyecto, también debe habilitar la API de conexión de BigQuery.
Limitaciones
- El código de la UDF debe ser autónomo, es decir, no debe contener ninguna referencia a una importación o variable definida fuera del cuerpo de la función.
- El código de la función definida por el usuario debe ser compatible con Python 3.11, ya que es el entorno en el que se ejecuta el código en la nube.
- Si se vuelve a ejecutar el código de definición de la función definida por el usuario después de hacer cambios triviales en el código de la función (por ejemplo, cambiar el nombre de una variable o insertar una línea nueva), se volverá a crear la función definida por el usuario, aunque estos cambios no tengan importancia para el comportamiento de la función.
- Los usuarios con acceso de lectura a las rutinas de BigQuery pueden ver el código de usuario, por lo que debes incluir contenido sensible con precaución.
- Un proyecto puede tener hasta 1000 funciones de Cloud Run a la vez en una ubicación de BigQuery.
La función definida por el usuario de BigQuery DataFrames implementa una función de Python de BigQuery definida por el usuario, por lo que se aplican las limitaciones relacionadas.
Funciones remotas
BigQuery DataFrames te permite convertir tus funciones escalares personalizadas en funciones remotas de BigQuery. Para ver un ejemplo de uso, consulta Crear una función remota. Para ver el conjunto completo de parámetros admitidos, consulta remote_function.
Al crear una función remota en BigQuery DataFrames, se crea lo siguiente:
- Una función de Cloud Run.
- Una conexión de BigQuery.
De forma predeterminada, se usa una conexión llamada
bigframes-default-connection
. Si lo prefieres, puedes usar una conexión de BigQuery preconfigurada. En ese caso, se omitirá la creación de la conexión. Se concede el rol de Cloud Run (roles/run.invoker
) a la cuenta de servicio de la conexión predeterminada. - Una función remota de BigQuery que usa la función de Cloud Run que se ha creado con la conexión de BigQuery.
Las conexiones de BigQuery se crean en la misma ubicación que la sesión de DataFrame de BigQuery, con el nombre que proporcione en la definición de la función personalizada. Para ver y gestionar las conexiones, sigue estos pasos:
En la Google Cloud consola, ve a la página BigQuery.
Selecciona el proyecto en el que has creado la función remota.
En el panel Explorador, despliega el proyecto y, a continuación, Conexiones externas.
Las funciones remotas de BigQuery se crean en el conjunto de datos que especifiques o en un conjunto de datos anónimo, que es un tipo de conjunto de datos oculto.
Si no asignas un nombre a una función remota durante su creación, BigQuery DataFrames le asignará un nombre predeterminado que empieza por el prefijo bigframes
. Para ver y gestionar las funciones remotas creadas en un conjunto de datos especificado por el usuario, siga estos pasos:
En la Google Cloud consola, ve a la página BigQuery.
Selecciona el proyecto en el que has creado la función remota.
En el panel Explorador, expande el proyecto, el conjunto de datos en el que has creado la función remota y, a continuación, Rutinas.
Para ver y gestionar funciones de Cloud Run, haz lo siguiente:
Ve a la página Cloud Run.
Selecciona el proyecto en el que has creado la función.
Filtra por Tipo de implementación de función en la lista de servicios disponibles.
Para identificar las funciones creadas por BigQuery DataFrames, busca nombres de funciones con el prefijo
bigframes
.
Limpieza
Además de eliminar los artefactos de la nube directamente en la Google Cloud consola o con otras herramientas, puedes eliminar las funciones remotas de BigQuery que se hayan creado sin un argumento de nombre explícito y sus funciones de Cloud Run asociadas de las siguientes formas:
- Para una sesión de BigQuery DataFrames, usa el comando
session.close()
. - Para la sesión predeterminada de BigQuery DataFrames, usa el comando
bigframes.pandas.close_session()
. - Para una sesión anterior con
session_id
, usa el comandobigframes.pandas.clean_up_by_session_id(session_id)
.
También puedes eliminar las funciones remotas de BigQuery que se hayan creado con un argumento de nombre explícito y sus funciones de Cloud Run asociadas mediante el comando bigframes.pandas.get_global_session().bqclient.delete_routine(routine_id)
.
Requisitos
Para usar las funciones remotas de los DataFrames de BigQuery, debes habilitar las siguientes APIs:
- API de BigQuery (
bigquery.googleapis.com
) - API BigQuery Connection (
bigqueryconnection.googleapis.com
) - API Cloud Functions (
cloudfunctions.googleapis.com
) - API Admin de Cloud Run (
run.googleapis.com
) - API Artifact Registry (
artifactregistry.googleapis.com
) - API de Cloud Build (
cloudbuild.googleapis.com
) - API de Compute Engine (
compute.googleapis.com
) API Cloud Resource Manager (
cloudresourcemanager.googleapis.com
)Puedes evitar este requisito si asignas el valor
True
a la opciónbigframes.pandas.options.bigquery.skip_bq_connection_check
. En ese caso, la conexión (predeterminada o preconfigurada) se usará tal cual, sin comprobar si existe o verificar sus permisos.
Limitaciones
- Las funciones remotas tardan unos 90 segundos en estar disponibles cuando las creas por primera vez. Las dependencias de paquetes adicionales pueden aumentar la latencia.
- Si vuelves a ejecutar el código de definición de la función remota después de hacer cambios triviales en el código de la función o en su entorno (por ejemplo, cambiar el nombre de una variable, insertar una línea nueva o insertar una celda nueva en el cuaderno), es posible que se vuelva a crear la función remota, aunque estos cambios no tengan consecuencias en el comportamiento de la función.
- El código de usuario es visible para los usuarios con acceso de lectura en las funciones de Cloud Run, por lo que solo debes incluir contenido sensible con precaución.
- Un proyecto puede tener hasta 1000 funciones de Cloud Run a la vez en una región. Para obtener más información, consulta Cuotas.
Aprendizaje automático e IA
En las siguientes secciones se describen las funciones de aprendizaje automático e IA de los DataFrames de BigQuery. Estas funciones usan la biblioteca bigframes.ml
.
Ubicaciones de aprendizaje automático
La biblioteca bigframes.ml
admite las mismas ubicaciones que BigQuery ML. Las predicciones de modelos de BigQuery ML y otras funciones de aprendizaje automático se admiten en todas las regiones de BigQuery. La asistencia para el entrenamiento de modelos varía según la región. Para obtener más información, consulta las ubicaciones de BigQuery ML.
Preprocesar datos
Crea transformadores para preparar los datos que se van a usar en los estimadores (modelos) mediante el módulo bigframes.ml.preprocessing y el módulo bigframes.ml.compose. BigQuery DataFrames ofrece las siguientes transformaciones:
Usa la clase KBinsDiscretizer del módulo
bigframes.ml.preprocessing
para agrupar datos continuos en intervalos.Usa la clase LabelEncoder del módulo
bigframes.ml.preprocessing
para normalizar las etiquetas de destino como valores enteros.Usa la clase MaxAbsScaler del módulo
bigframes.ml.preprocessing
para escalar cada característica al intervalo[-1, 1]
por su valor absoluto máximo.Usa la clase MinMaxScaler del módulo
bigframes.ml.preprocessing
para estandarizar las funciones. Para ello, escala cada función al intervalo[0, 1]
.Usa la clase StandardScaler del módulo
bigframes.ml.preprocessing
para estandarizar las características quitando la media y escalando a la varianza de unidad.Usa la clase OneHotEncoder del módulo
bigframes.ml.preprocessing
para transformar valores categóricos en formato numérico.Usa la clase ColumnTransformer del módulo
bigframes.ml.compose
para aplicar transformadores a las columnas de DataFrames.
Entrenar modelos
Puedes crear estimadores para entrenar modelos en BigQuery DataFrames.
Modelos de clústeres
Puedes crear estimadores para modelos de clustering con el módulo bigframes.ml.cluster.
- Usa la clase KMeans para crear modelos de clústeres de k-medias. Usa estos modelos para segmentar datos. Por ejemplo, identificar segmentos de clientes. K-means es una técnica de aprendizaje no supervisado, por lo que el entrenamiento del modelo no requiere etiquetas ni datos divididos para el entrenamiento o la evaluación.
Puedes usar el módulo bigframes.ml.cluster
para crear estimadores de modelos de clustering.
En el siguiente ejemplo de código se muestra cómo usar la clase bigframes.ml.cluster KMeans
para crear un modelo de clústeres de k-medias para la segmentación de datos:
Modelos de descomposición
Puedes crear estimadores para modelos de descomposición usando el módulo bigframes.ml.decomposition.
- Usa la clase PCA para crear modelos de análisis de componentes principales (ACP). Usa estos modelos para calcular los componentes principales y usarlos para realizar un cambio de base en los datos. De esta forma, se reduce la dimensionalidad proyectando cada punto de datos en los primeros componentes principales para obtener datos de menor dimensión y, al mismo tiempo, conservar la mayor parte posible de la variación de los datos.
Modelos de conjunto
Puedes crear estimadores para modelos de conjunto mediante el módulo bigframes.ml.ensemble.
Usa la clase RandomForestClassifier para crear modelos de clasificador de bosque aleatorio. Usa estos modelos para crear varios árboles de decisión de métodos de aprendizaje para la clasificación.
Usa la clase RandomForestRegressor para crear modelos de regresión de bosque aleatorio. Usa estos modelos para crear varios árboles de decisión de métodos de aprendizaje para la regresión.
Usa la clase XGBClassifier para crear modelos de clasificador de árbol de gradiente reforzado. Usa estos modelos para construir de forma aditiva varios árboles de decisión de métodos de aprendizaje para la clasificación.
Usa la clase XGBRegressor para crear modelos de regresión de árbol de gradiente reforzado. Usa estos modelos para construir de forma aditiva varios árboles de decisión de métodos de aprendizaje para la regresión.
Modelos de previsión
Puedes crear estimadores para modelos de previsión con el módulo bigframes.ml.forecasting.
- Usa la clase ARIMAPlus para crear modelos de previsión de series temporales.
Modelos importados
Puedes crear estimadores para modelos importados usando el módulo bigframes.ml.imported.
Usa la clase ONNXModel para importar modelos de Open Neural Network Exchange (ONNX).
Usa la clase TensorFlowModel para importar modelos de TensorFlow.
Usa la clase XGBoostModel para importar modelos XGBoostModel.
Modelos lineales
Crea estimadores para modelos lineales con el módulo bigframes.ml.linear_model.
Usa la clase LinearRegression para crear modelos de regresión lineal. Usa estos modelos para hacer previsiones. Por ejemplo, predecir las ventas de un artículo en un día concreto.
Usa la clase LogisticRegression para crear modelos de regresión logística. Usa estos modelos para clasificar dos o más valores posibles, como si una entrada es
low-value
,medium-value
ohigh-value
.
En el siguiente código de ejemplo se muestra cómo usar bigframes.ml
para hacer lo siguiente:
- Cargar datos de BigQuery
- Limpiar y preparar los datos de entrenamiento
- Crear y aplicar un modelo de regresión bigframes.ml.LinearRegression
Modelos de lenguaje extensos
Puedes crear estimadores para LLMs usando el módulo bigframes.ml.llm.
Usa la clase GeminiTextGenerator para crear modelos de generador de texto de Gemini. Usa estos modelos para tareas de generación de texto.
Usa el módulo bigframes.ml.llm para crear estimadores de modelos de lenguaje extensos (LLMs) remotos.
En el siguiente ejemplo de código se muestra cómo usar la clase bigframes.ml.llm
GeminiTextGenerator
para crear un modelo de Gemini para la generación de código:
Modelos remotos
Para usar modelos remotos de BigQuery DataFrames ML (bigframes.ml.remote
o bigframes.ml.llm
), debes habilitar las siguientes APIs:
API Cloud Resource Manager (
cloudresourcemanager.googleapis.com
)Puedes evitar este requisito si asignas el valor
True
a la opciónbigframes.pandas.options.bigquery.skip_bq_connection_check
. En ese caso, la conexión (predeterminada o preconfigurada) se usará tal cual, sin comprobar si existe o verificar sus permisos.
Al crear un modelo remoto en BigQuery DataFrames, se crea una conexión de BigQuery.
De forma predeterminada, se usa una conexión con el nombre bigframes-default-connection
. Si lo prefieres, puedes usar una conexión de BigQuery preconfigurada. En ese caso, se omitirá la creación de la conexión. La cuenta de servicio de la conexión predeterminada tiene asignado el rol Usuario de Vertex AI (roles/aiplatform.user
) en el proyecto.
Crear flujos de procesamiento
Puedes crear flujos de procesamiento de aprendizaje automático con el módulo bigframes.ml.pipeline. Las canalizaciones te permiten combinar varios pasos de aprendizaje automático para validarlos conjuntamente y, al mismo tiempo, definir diferentes parámetros. De esta forma, el código se simplifica y puedes implementar los pasos de preprocesamiento de datos y un estimador juntos.
Usa la clase Pipeline para crear un flujo de procesamiento de transformaciones con un estimador final.
Seleccionar modelos
Usa el módulo bigframes.ml.model_selection para dividir tus conjuntos de datos de entrenamiento y de prueba, y seleccionar los mejores modelos:
Usa la función
train_test_split
para dividir los datos en conjuntos de entrenamiento y de prueba (evaluación), como se muestra en el siguiente ejemplo de código:X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
Usa la clase
KFold
y el métodoKFold.split
para crear conjuntos de entrenamiento y de pruebas de varios pliegues con los que entrenar y evaluar modelos, tal como se muestra en el siguiente ejemplo de código. Esta función es muy útil para conjuntos de datos pequeños.kf = KFold(n_splits=5) for i, (X_train, X_test, y_train, y_test) in enumerate(kf.split(X, y)): # Train and evaluate models with training and testing sets
Usa la función
cross_validate
para crear automáticamente conjuntos de entrenamiento y de prueba de varios pliegues, entrenar y evaluar el modelo, y obtener el resultado de cada pliegue, tal como se muestra en el siguiente ejemplo de código:scores = cross_validate(model, X, y, cv=5)
Siguientes pasos
- Consulta información sobre el sistema de tipos de datos de DataFrames de BigQuery.
- Consulta información sobre las sesiones y las operaciones de entrada/salida de los DataFrames de BigQuery.
- Consulta cómo visualizar gráficos con DataFrames de BigQuery.
- Consulta cómo generar código de BigQuery DataFrames con Gemini.
- Consulta cómo analizar las descargas de paquetes de PyPI con BigQuery DataFrames.
- Consulta el código fuente, los cuadernos de ejemplo y los ejemplos de BigQuery DataFrames en GitHub.
- Consulta la referencia de la API BigQuery DataFrames.