En este instructivo, aprenderás a usar un modelo clasificador de árbol potenciado para predecir el rango de ingresos de las personas según sus datos demográficos. El modelo predice si un valor pertenece a una de dos categorías, en este caso, si el ingreso anual de una persona es superior o inferior a USD 50,000.
En este instructivo, se usa el conjunto de datos bigquery-public-data.ml_datasets.census_adult_income
. Este conjunto de datos contiene la información demográfica y de ingresos de los residentes de EE.UU. de los años 2000 y 2010.
Objetivos
En este instructivo, se te guiará para completar las siguientes tareas:
- Crear un modelo de árbol mejorado para predecir el tramo de ingresos de los encuestados del censo con la sentencia
CREATE MODEL
- Evalúa el modelo con la función
ML.EVALUATE
. - Obtener predicciones del modelo con la función
ML.PREDICT
Costos
En este instructivo, se usan componentes facturables de Google Cloud, incluidos los siguientes:
- BigQuery
- BigQuery ML
Para obtener más información sobre los costos de BigQuery, consulta la página de precios de BigQuery.
Para obtener más información sobre los costos de BigQuery ML, consulta los precios de BigQuery ML.
Antes de comenzar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- BigQuery se habilita automáticamente en proyectos nuevos.
Para activar BigQuery en un proyecto existente, ve a
Enable the BigQuery API.
Permisos necesarios
- Para crear el conjunto de datos, necesitas el permiso
bigquery.datasets.create
de IAM. Para crear el recurso de conexión, necesitas los siguientes permisos:
bigquery.connections.create
bigquery.connections.get
Para crear el modelo, necesitas los siguientes permisos:
bigquery.jobs.create
bigquery.models.create
bigquery.models.getData
bigquery.models.updateData
bigquery.connections.delegate
Para ejecutar inferencias, necesitas los siguientes permisos:
bigquery.models.getData
bigquery.jobs.create
Para obtener más información sobre los roles y permisos de IAM en BigQuery, consulta Introducción a IAM.
Crea un conjunto de datos
Crea un conjunto de datos de BigQuery para almacenar tu modelo de AA:
En la consola de Google Cloud, ve a la página de BigQuery.
En el panel Explorador, haz clic en el nombre de tu proyecto.
Haz clic en
Ver acciones > Crear conjunto de datos.En la página Crear conjunto de datos, haz lo siguiente:
En ID del conjunto de datos, ingresa
bqml_tutorial
.En Tipo de ubicación, selecciona Multirregión y, luego, EE.UU. (varias regiones en Estados Unidos).
Los conjuntos de datos públicos se almacenan en la multirregión
US
. Para que sea más simple, almacena tu conjunto de datos en la misma ubicación.Deja la configuración predeterminada restante como está y haz clic en Crear conjunto de datos.
Prepara los datos de muestra
El modelo que crearás en este instructivo predice el intervalo de ingresos de los encuestados del censo en función de las siguientes características:
- Edad
- Tipo de trabajo realizado
- Estado civil
- Nivel de educación
- Ocupación
- Horas trabajadas por semana
La columna education
no se incluye en los datos de entrenamiento, ya que las columnas education
y education_num
expresan el nivel de educación del encuestado en diferentes formatos.
Para separar los datos en conjuntos de entrenamiento, evaluación y predicción, crea una nueva columna dataframe
que se derive de la columna functional_weight
.
El ochenta por ciento de los datos se usa para entrenar el modelo, y el veinte por ciento restante se usa para la evaluación y predicción.
SQL
Para preparar tus datos de muestra, crea una vista que contenga los datos de entrenamiento. La sentencia CREATE MODEL
usa esta vista más adelante en este instructivo.
Ejecuta la consulta que prepara los datos de muestra:
En la consola de Google Cloud, ve a la página de BigQuery.
En el Editor de consultas, ejecute la siguiente consulta:
CREATE OR REPLACE VIEW `bqml_tutorial.input_data` AS SELECT age, workclass, marital_status, education_num, occupation, hours_per_week, income_bracket, CASE WHEN MOD(functional_weight, 10) < 8 THEN 'training' WHEN MOD(functional_weight, 10) = 8 THEN 'evaluation' WHEN MOD(functional_weight, 10) = 9 THEN 'prediction' END AS dataframe FROM `bigquery-public-data.ml_datasets.census_adult_income`;
En el panel Explorador, expande el conjunto de datos
bqml_tutorial
y busca la vistainput_data
.Haz clic en el nombre de la vista para abrir el panel de información. El esquema de la vista aparece en la pestaña Esquema.
Permite trabajar con BigQuery DataFrames.
Crea un DataFrame llamado input_data
. Más adelante en este instructivo, usarás input_data
para entrenar el modelo, evaluarlo y hacer predicciones.
Antes de probar este ejemplo, sigue las instrucciones de configuración de BigQuery DataFrames en la guía de inicio rápido de BigQuery con BigQuery DataFrames. Para obtener más información, consulta la documentación de referencia de BigQuery DataFrames.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Crea el modelo de árbol potenciado
Crea un modelo de árbol mejorado para predecir el tramo de ingresos de los encuestados del censo y entrena el modelo con los datos del censo. La consulta tarda unos 30 minutos en completarse.
SQL
Sigue estos pasos para crear el modelo:
En la consola de Google Cloud, ve a la página de BigQuery.
En el editor de consultas, pega la siguiente consulta y haz clic en Ejecutar:
CREATE MODEL `bqml_tutorial.tree_model` OPTIONS(MODEL_TYPE='BOOSTED_TREE_CLASSIFIER', BOOSTER_TYPE = 'GBTREE', NUM_PARALLEL_TREE = 1, MAX_ITERATIONS = 50, TREE_METHOD = 'HIST', EARLY_STOP = FALSE, SUBSAMPLE = 0.85, INPUT_LABEL_COLS = ['income_bracket']) AS SELECT * EXCEPT(dataframe) FROM `bqml_tutorial.input_data` WHERE dataframe = 'training';
Después de que se completa la consulta, el modelo
tree_model
aparece en el panel Explorador. Debido a que en la consulta se usa una sentenciaCREATE MODEL
para crear un modelo, no se muestran los resultados.
Permite trabajar con BigQuery DataFrames.
Antes de probar este ejemplo, sigue las instrucciones de configuración de BigQuery DataFrames en la guía de inicio rápido de BigQuery con BigQuery DataFrames. Para obtener más información, consulta la documentación de referencia de BigQuery DataFrames.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Evalúa el modelo
SQL
Sigue estos pasos para evaluar el modelo:
En la consola de Google Cloud, ve a la página de BigQuery.
En el editor de consultas, pega la siguiente consulta y haz clic en Ejecutar:
SELECT * FROM ML.EVALUATE (MODEL `bqml_tutorial.tree_model`, ( SELECT * FROM `bqml_tutorial.input_data` WHERE dataframe = 'evaluation' ) );
Los resultados debería ser similar al siguiente:
+---------------------+---------------------+---------------------+-------------------+---------------------+---------------------+ | precision | recall | accuracy | f1_score | log_loss | roc_auc | +---------------------+---------------------+---------------------+-------------------+-------------------------------------------+ | 0.67192429022082023 | 0.57880434782608692 | 0.83942963422194672 | 0.621897810218978 | 0.34405456040833338 | 0.88733566433566435 | +---------------------+---------------------+ --------------------+-------------------+---------------------+---------------------+
Permite trabajar con BigQuery DataFrames.
Antes de probar este ejemplo, sigue las instrucciones de configuración de BigQuery DataFrames en la guía de inicio rápido de BigQuery con BigQuery DataFrames. Para obtener más información, consulta la documentación de referencia de BigQuery DataFrames.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Las métricas de evaluación indican un buen rendimiento del modelo, en particular, el hecho de que la puntuación roc_auc
es mayor que 0.8
.
Para obtener más información sobre las métricas de evaluación, consulta Modelos de clasificación.
Usa el modelo para predecir clasificaciones
SQL
Sigue estos pasos para pronosticar datos con el modelo:
En la consola de Google Cloud, ve a la página de BigQuery.
En el editor de consultas, pega la siguiente consulta y haz clic en Ejecutar:
SELECT * FROM ML.PREDICT (MODEL `bqml_tutorial.tree_model`, ( SELECT * FROM `bqml_tutorial.input_data` WHERE dataframe = 'prediction' ) );
Las primeras columnas de los resultados deberían ser similares a las siguientes:
+---------------------------+--------------------------------------+-------------------------------------+ | predicted_income_bracket | predicted_income_bracket_probs.label | predicted_income_bracket_probs.prob | +---------------------------+--------------------------------------+-------------------------------------+ | <=50K | >50K | 0.05183430016040802 | +---------------------------+--------------------------------------+-------------------------------------+ | | <50K | 0.94816571474075317 | +---------------------------+--------------------------------------+-------------------------------------+ | <=50K | >50K | 0.00365859130397439 | +---------------------------+--------------------------------------+-------------------------------------+ | | <50K | 0.99634140729904175 | +---------------------------+--------------------------------------+-------------------------------------+ | <=50K | >50K | 0.037775970995426178 | +---------------------------+--------------------------------------+-------------------------------------+ | | <50K | 0.96222406625747681 | +---------------------------+--------------------------------------+-------------------------------------+
Permite trabajar con BigQuery DataFrames.
Antes de probar este ejemplo, sigue las instrucciones de configuración de BigQuery DataFrames en la guía de inicio rápido de BigQuery con BigQuery DataFrames. Para obtener más información, consulta la documentación de referencia de BigQuery DataFrames.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
predicted_income_bracket
contiene el valor previsto del modelo.
predicted_income_bracket_probs.label
muestra las dos etiquetas entre las que el modelo debía elegir, y la columna predicted_income_bracket_probs.prob
muestra la probabilidad de que la etiqueta determinada sea la correcta.
Para obtener más información sobre las columnas de salida, consulta Modelos de clasificación.
Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.
- Puedes borrar el proyecto que creaste.
- De lo contrario, puedes mantener el proyecto y borrar el conjunto de datos.
Borra tu conjunto de datos
Borrar tu proyecto quita todos sus conjuntos de datos y tablas. Si prefieres volver a usar el proyecto, puedes borrar el conjunto de datos que creaste en este instructivo:
Si es necesario, abre la página de BigQuery en la consola de Google Cloud.
En el panel de navegación, haz clic en el conjunto de datos bqml_tutorial que creaste.
Haz clic en Borrar conjunto de datos en el lado derecho de la ventana. Esta acción borra el conjunto de datos, la tabla y todos los datos.
En el cuadro de diálogo Borrar conjunto de datos, escribe el nombre del conjunto de datos (
bqml_tutorial
) para confirmar el comando de borrado y, luego, haz clic en Borrar.
Borra tu proyecto
Para borrar el proyecto, haz lo siguiente:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
¿Qué sigue?
- Aprende a crear un modelo de clasificación de regresión logística.
- Para obtener una descripción general de BigQuery ML, consulta Introducción a la IA y el AA en BigQuery.