arrow_back

Predice las compras de visitantes con un modelo de clasificación en BigQuery ML

Unirse Acceder
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Predice las compras de visitantes con un modelo de clasificación en BigQuery ML

Lab 1 hora 15 minutos universal_currency_alt No cost show_chart Intermedio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP229

Labs de autoaprendizaje de Google Cloud

Descripción general

BigQuery es la base de datos analítica de bajo costo, no-ops y completamente administrada de Google. Con BigQuery, puedes consultar muchos terabytes de datos sin tener que administrar infraestructuras y sin necesitar un administrador de base de datos. BigQuery usa SQL y puede aprovechar el modelo de pago por uso. BigQuery te permite enfocarte en el análisis de datos para buscar estadísticas valiosas.

BigQuery Machine Learning (BigQuery ML) es una nueva función de BigQuery con la que los analistas de datos pueden crear, entrenar, evaluar y predecir con modelos de aprendizaje automático y programación mínima.

En este lab, utilizarás un conjunto de datos de comercio electrónico especial que contiene millones de registros de Google Analytics para Google Merchandise Store cargados en BigQuery. Utilizarás estos datos para ejecutar algunas consultas típicas que las empresas querrían saber sobre los hábitos de compra de sus clientes.

Qué aprenderás

En este lab, aprenderás a realizar las siguientes tareas:

  • Utilizar BigQuery para buscar conjuntos de datos públicos
  • Consultar y explorar el conjunto de datos de comercio electrónico
  • Crear un conjunto de datos de entrenamiento y evaluación para usar en la predicción por lotes
  • Crear un modelo de clasificación (regresión logística) en BigQuery ML
  • Evaluar el rendimiento de tu modelo de aprendizaje automático
  • Predecir y clasificar la probabilidad de que un visitante realice una compra

Configuración

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana de navegador privada o de Incógnito para ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar su lab y acceder a la consola de Google Cloud

  1. Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab que tiene estos elementos:

    • El botón Abrir la consola de Google
    • Tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haga clic en Abrir la consola de Google. El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ve el diálogo Elegir una cuenta, haga clic en Usar otra cuenta.
  3. Si es necesario, copie el nombre de usuario del panel Detalles del lab y péguelo en el cuadro de diálogo Acceder. Haga clic en Siguiente.

  4. Copie la contraseña del panel Detalles del lab y péguela en el cuadro de diálogo de bienvenida. Haga clic en Siguiente.

    Importante: Debe usar las credenciales del panel de la izquierda. No use sus credenciales de Google Cloud Skills Boost. Nota: Usar su propia Cuenta de Google podría generar cargos adicionales.
  5. Haga clic para avanzar por las páginas siguientes:

    • Acepte los términos y condiciones.
    • No agregue opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No se registre para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Cloud en esta pestaña.

Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haga clic en el Menú de navegación que se encuentra en la parte superior izquierda de la pantalla. Ícono del menú de navegación

Cómo abrir la consola de BigQuery

  1. En la consola de Google Cloud, seleccione elmenú de navegación > BigQuery.

Se abrirá el cuadro de mensaje Te damos la bienvenida a BigQuery en la consola de Cloud. Este cuadro de mensaje contiene un vínculo a la guía de inicio rápido y las notas de la versión.

  1. Haga clic en Listo.

Se abrirá la consola de BigQuery.

Accede al conjunto de datos del curso

  1. En el panel Explorador, haz clic en + AGREGAR.

Se abre el panel Agregar datos.

  1. Haz clic en Destaca un proyecto por nombre dentro de Fuentes adicionales.

  2. Ingresa data-to-insights y haz clic en Destacar.

Panel de proyectos de BigQuery

Haz clic en el vínculo directo que se encuentra a continuación para ver el proyecto público de data-to-insights:

Las definiciones de los campos del conjunto de datos de comercio electrónico de data-to-insights se encuentran aquí. Mantén el vínculo abierto en una nueva pestaña como referencia.

Haz clic en la pestaña Consulta y luego selecciona En una pestaña nueva para abrir el Editor de consultas.

Tarea 1. Explora los datos de comercio electrónico

Situación: Tu equipo de analistas de datos exportó a BigQuery los registros de Google Analytics de un sitio web de comercio electrónico y creó una nueva tabla con todos los datos de comercio electrónico sin procesar de sesiones de visitantes para que los explores. Con estos datos, intentarás responder algunas preguntas.

Pregunta: Del total de usuarios que visitaron nuestro sitio web, ¿qué porcentaje realizó una compra?

  1. Copia y pega la siguiente consulta en el Editor de BigQuery:
#standardSQL WITH visitors AS( SELECT COUNT(DISTINCT fullVisitorId) AS total_visitors FROM `data-to-insights.ecommerce.web_analytics` ), purchasers AS( SELECT COUNT(DISTINCT fullVisitorId) AS total_purchasers FROM `data-to-insights.ecommerce.web_analytics` WHERE totals.transactions IS NOT NULL ) SELECT total_visitors, total_purchasers, total_purchasers / total_visitors AS conversion_rate FROM visitors, purchasers
  1. Haz clic en Ejecutar.

El resultado: 2.69%

Pregunta: ¿Cuáles son los 5 productos más vendidos?

  1. Borra la consulta anterior y ejecuta la que se indica a continuación en el Editor:
SELECT p.v2ProductName, p.v2ProductCategory, SUM(p.productQuantity) AS units_sold, ROUND(SUM(p.localProductRevenue/1000000),2) AS revenue FROM `data-to-insights.ecommerce.web_analytics`, UNNEST(hits) AS h, UNNEST(h.product) AS p GROUP BY 1, 2 ORDER BY revenue DESC LIMIT 5;
  1. Haz clic en Ejecutar

Este es el resultado:

Fila

v2ProductName

v2ProductCategory

units_sold

revenue

1

Nest® Learning Thermostat 3rd Gen-USA - Stainless Steel

Nest-USA

17651

870976.95

2

Nest® Cam Outdoor Security Camera - USA

Nest-USA

16930

684034.55

3

Nest® Cam Indoor Security Camera - USA

Nest-USA

14155

548104.47

4

Nest® Protect Smoke + CO White Wired Alarm-USA

Nest-USA

6394

178937.6

5

Nest® Protect Smoke + CO White Battery Alarm-USA

Nest-USA

6340

178572.4

Pregunta: ¿Cuántos visitantes compraron en visitas posteriores al sitio web?

  1. Borra la consulta anterior y ejecuta la que se indica a continuación en el Editor:
# visitors who bought on a return visit (could have bought on first as well WITH all_visitor_stats AS ( SELECT fullvisitorid, # 741,721 unique visitors IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit FROM `data-to-insights.ecommerce.web_analytics` GROUP BY fullvisitorid ) SELECT COUNT(DISTINCT fullvisitorid) AS total_visitors, will_buy_on_return_visit FROM all_visitor_stats GROUP BY will_buy_on_return_visit
  1. Haz clic en Ejecutar.

Estos son los resultados:

Fila

total_visitors

will_buy_on_return_visit

1

729848

0

2

11873

1

Si analizas los resultados, puedes ver que (11873/741721) = 1.6% del total de visitantes regresarán y comprarán desde el sitio web. Esto incluye el subconjunto de visitantes que compraron en su primera sesión y, luego, regresaron y compraron nuevamente.

Pregunta: ¿Cuáles son algunas de las razones por las que un cliente de comercio electrónico típico navegará pero no comprará hasta una visita posterior?

Respuesta: Aunque no hay una respuesta correcta, una razón popular es la comparación de precios entre diferentes sitios de comercio electrónico antes de tomar una decisión de compra. Esto es muy común para los artículos de lujo, para los cuales el cliente requiere significativas tareas de investigación y comparación por adelantado antes de decidir (piensa en las compras de automóviles), pero, en menor medida, también es cierto para los productos de este sitio (camisetas, accesorios, etcétera).

En el mundo del marketing en línea, identificar a estos futuros clientes y aplicar estrategias de marketing enfocadas a ellos según las características de su primera visita aumentará los porcentajes de conversiones y reducirá la salida a sitios de la competencia.

Tarea 2. Identifica un objetivo

Ahora crearás un modelo de aprendizaje automático en BigQuery para predecir si es probable que un usuario nuevo compre en el futuro. La identificación de estos usuarios de gran valor puede ayudar a que tu equipo de marketing segmente las promociones especiales y campañas publicitarias en función de ellos. De este modo, se asegura de que generen una conversión mientras comparan precios entre las visitas en tu sitio de comercio electrónico.

Tarea 3: Selecciona atributos y crea tu conjunto de datos de entrenamiento

Google Analytics capta una amplia variedad de dimensiones y mediciones sobre la visita de un usuario a este sitio web de comercio electrónico. Explora la lista completa de campos en el documento del [UA] Esquema de BigQuery Export y, luego, obtén una vista previa del conjunto de datos de demostración para encontrar atributos útiles que ayudarán a un modelo de aprendizaje automático a comprender la relación entre los datos de la primera visita de un usuario a tu sitio web y si ese visitante volverá y realizará una compra.

Tu equipo decide probar si estos dos campos son entradas adecuadas para tu modelo de clasificación:

  • totals.bounces (si el visitante abandonó el sitio web inmediatamente)
  • totals.timeOnSite (cuánto tiempo estuvo el visitante en nuestro sitio web)

Pregunta: ¿Cuáles son los riesgos de usar solo los dos campos anteriores?

Respuesta: El aprendizaje automático es tan bueno como lo son los datos de entrenamiento que se incorporan a él. Si no hay suficiente información para que el modelo determine y aprenda la relación entre los atributos de entrada y la etiqueta (en este caso, si el visitante compró en una visita posterior), entonces no tendrás un modelo preciso. Si bien entrenar un modelo solo a partir de estos dos campos es un comienzo, verás si son lo suficientemente buenos como para producir un modelo preciso.

  • En el Editor de BigQuery, ejecuta la siguiente consulta:
SELECT * EXCEPT(fullVisitorId) FROM # features (SELECT fullVisitorId, IFNULL(totals.bounces, 0) AS bounces, IFNULL(totals.timeOnSite, 0) AS time_on_site FROM `data-to-insights.ecommerce.web_analytics` WHERE totals.newVisits = 1) JOIN (SELECT fullvisitorid, IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit FROM `data-to-insights.ecommerce.web_analytics` GROUP BY fullvisitorid) USING (fullVisitorId) ORDER BY time_on_site DESC LIMIT 10;

Resultados:

Fila

bounces

time_on_site

will_buy_on_return_visit

1

0

15047

0

2

0

12136

0

3

0

11201

0

4

0

10046

0

5

0

9974

0

6

0

9564

0

7

0

9520

0

8

0

9275

1

9

0

9138

0

10

0

8872

0

Pregunta: ¿Qué campos corresponden a los atributos de entrada y a la etiqueta de recurso?

Respuesta: Las entradas son bounces y time_on_site. La etiqueta es will_buy_on_return_visit.

Pregunta: ¿Cuáles son los dos campos que se conocen después de la primera sesión de un visitante?

Respuesta: Los campos que se conocen después de la primera sesión de un visitante son bounces y time_on_site.

Pregunta: ¿Qué campo no se conoce hasta más adelante en el futuro?

Respuesta: will_buy_on_return_visit no se conoce después de la primera visita. Nuevamente, la predicción se basa en un subconjunto de usuarios que regresaron a tu sitio web y compraron. Debido a que no conoces el futuro en el momento de la predicción, no puedes decir con certeza si un nuevo visitante regresará y comprará. El valor de compilar un modelo de AA es calcular la probabilidad de las compras futuras según los datos obtenidos acerca de su primera sesión.

Pregunta: En cuanto a los resultados iniciales de los datos, ¿crees que time_on_site y bounces serán buenos indicadores de si el usuario regresará y comprará o no?

Respuesta: A menudo, es demasiado pronto para saber antes de entrenar y evaluar el modelo, pero a primera vista, de los 10 time_on_site principales, solo 1 cliente regresó a comprar, lo cual no es muy prometedor. Veamos qué tan bien funciona el modelo.

Tarea 4: Crea un conjunto de datos de BigQuery para almacenar modelos

A continuación, crea un nuevo conjunto de datos de BigQuery que también almacenará tus modelos de AA.

  1. Bajo la sección Explorador que se encuentra en el panel izquierdo, haz clic en el ícono Ver acciones que está junto al nombre de tu proyecto (comienza con qwiklabs-gcp-…) y, luego, haz clic en Crear conjunto de datos.

Sección de explorador

  1. En el diálogo Crear conjunto de datos, realiza lo siguiente:
  • En ID de conjunto de datos, escribe “comercio electrónico”.
  • Deja los otros valores en su configuración predeterminada.
  1. Haz clic en Crear conjunto de datos.

Haz clic en Revisar mi progreso para verificar el objetivo.

Crear un conjunto de datos nuevo

Tarea 5. Selecciona un tipo de modelo de BigQuery ML y especifica las opciones

Ahora que ya seleccionaste tus atributos iniciales, tienes todo listo para crear tu primer modelo de AA en BigQuery.

Hay dos tipos de modelos para elegir:

Modelo

Tipo de modelo

Tipo de datos de etiqueta

Ejemplo

Previsión

linear_reg

Valor numérico (generalmente un número entero o punto flotante)

Previsión de cifras de ventas para el próximo año según los datos históricos de ventas

Clasificación

logistic_reg

0 o 1 para clasificación binaria

Clasificación de un correo electrónico como spam o no spam según el contexto

Nota: Existen muchos tipos de modelos adicionales que se usan en el aprendizaje automático (como las redes neuronales y los árboles de decisión) y que están disponibles en bibliotecas como TensorFlow. En el momento de la redacción de este lab, BigQuery ML es compatible con los dos mencionados anteriormente.

¿Qué tipo de modelo deberías elegir?

Dado que estás agrupando a los visitantes en "comprarán en el futuro" o "no comprarán en el futuro", usa logistic_reg en un modelo de clasificación.

Mediante la siguiente consulta, se creará un modelo y se especificarán las opciones del modelo.

  1. Ejecútala para entrenar tu modelo:
CREATE OR REPLACE MODEL `ecommerce.classification_model` OPTIONS ( model_type='logistic_reg', labels = ['will_buy_on_return_visit'] ) AS #standardSQL SELECT * EXCEPT(fullVisitorId) FROM # features (SELECT fullVisitorId, IFNULL(totals.bounces, 0) AS bounces, IFNULL(totals.timeOnSite, 0) AS time_on_site FROM `data-to-insights.ecommerce.web_analytics` WHERE totals.newVisits = 1 AND date BETWEEN '20160801' AND '20170430') # train on first 9 months JOIN (SELECT fullvisitorid, IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit FROM `data-to-insights.ecommerce.web_analytics` GROUP BY fullvisitorid) USING (fullVisitorId) ;
  1. Espera a que el modelo se entrene (de 5 a 10 minutos).
Nota: Durante el entrenamiento, no puedes ingresar en el modelo todos los datos disponibles, ya que debes reservar algunos datos aún no vistos para la evaluación y prueba del modelo. Si deseas lograr esto, agrega una condición de cláusula WHERE para filtrar los datos de sesión correspondientes a los primeros 9 meses de tu conjunto de datos de 12 meses y realizar el entrenamiento solo en función de ellos.

Haz clic en Revisar mi progreso para verificar el objetivo.

Crear un modelo y especificar sus opciones

Luego del entrenamiento del modelo, verás el mensaje “This statement created a new model named qwiklabs-gcp-xxxxxxxxx:ecommerce.classification_mode”.

  1. Haz clic en Ir al modelo.

  2. Observa el conjunto de datos de comercio electrónico y confirma que aparezca classification_model.

conjunto de datos de comercio electrónico

A continuación, evaluarás el rendimiento del modelo en comparación con nuevos datos de evaluación no vistos.

Tarea 6. Evalúa el rendimiento del modelo de clasificación

Selecciona tus criterios de rendimiento

Para los problemas de clasificación en AA, lo mejor es minimizar la tasa de falsos positivos (predecir que el usuario regresará y comprará, y no lo hace) y maximizar la tasa de verdaderos positivos (predecir que el usuario regresará y comprará, y sí lo hace).

Esta relación se visualiza con una curva ROC (característica operativa del receptor) como la que se muestra aquí, en la que intentas maximizar el área bajo la curva o AUC:

Curva ROC

En BigQuery ML, roc_auc es simplemente un campo que puedes usar para consultas cuando evalúas tu modelo de AA entrenado.

  • Ahora que el entrenamiento se completó, ejecuta esta consulta para evaluar qué tan bien se desempeña el modelo a través de ML.EVALUATE:
SELECT roc_auc, CASE WHEN roc_auc > .9 THEN 'good' WHEN roc_auc > .8 THEN 'fair' WHEN roc_auc > .7 THEN 'decent' WHEN roc_auc > .6 THEN 'not great' ELSE 'poor' END AS model_quality FROM ML.EVALUATE(MODEL ecommerce.classification_model, ( SELECT * EXCEPT(fullVisitorId) FROM # features (SELECT fullVisitorId, IFNULL(totals.bounces, 0) AS bounces, IFNULL(totals.timeOnSite, 0) AS time_on_site FROM `data-to-insights.ecommerce.web_analytics` WHERE totals.newVisits = 1 AND date BETWEEN '20170501' AND '20170630') # eval on 2 months JOIN (SELECT fullvisitorid, IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit FROM `data-to-insights.ecommerce.web_analytics` GROUP BY fullvisitorid) USING (fullVisitorId) ));

Deberías ver el siguiente resultado:

Fila

roc_auc

model_quality

1

0.7238561438561438

decent

Después de evaluar tu modelo, obtienes un roc_auc de 0.72, que muestra que el modelo tiene un poder predictivo aceptable, pero no excelente. Dado que el objetivo es lograr que el área bajo la curva se acerque lo más posible a 1.0, quedan aspectos por mejorar.

Haz clic en Revisar mi progreso para verificar el objetivo.

Evalúa el rendimiento del modelo de clasificación

Tarea 7. Mejora el rendimiento del modelo con ingeniería de atributos

Como se indicó anteriormente, hay muchos más atributos en el conjunto de datos que pueden ayudar a que el modelo comprenda mejor la relación entre la primera sesión de un visitante y la probabilidad de que compre en una visita posterior.

  1. Agrega atributos nuevos y crea un segundo modelo de aprendizaje automático denominado classification_model_2:
  • Qué tan lejos llegó el visitante en el proceso de confirmación de la compra en su primera visita
  • De dónde vino el visitante (fuente de tráfico: búsqueda orgánica, sitio de referencia, etcétera)
  • Categoría del dispositivo (dispositivo móvil, tablet, computadora de escritorio)
  • Información geográfica (país)
  1. Crea este segundo modelo haciendo clic en el ícono “+” (Redactar consulta nueva):
CREATE OR REPLACE MODEL `ecommerce.classification_model_2` OPTIONS (model_type='logistic_reg', labels = ['will_buy_on_return_visit']) AS WITH all_visitor_stats AS ( SELECT fullvisitorid, IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit FROM `data-to-insights.ecommerce.web_analytics` GROUP BY fullvisitorid ) # add in new features SELECT * EXCEPT(unique_session_id) FROM ( SELECT CONCAT(fullvisitorid, CAST(visitId AS STRING)) AS unique_session_id, # labels will_buy_on_return_visit, MAX(CAST(h.eCommerceAction.action_type AS INT64)) AS latest_ecommerce_progress, # behavior on the site IFNULL(totals.bounces, 0) AS bounces, IFNULL(totals.timeOnSite, 0) AS time_on_site, IFNULL(totals.pageviews, 0) AS pageviews, # where the visitor came from trafficSource.source, trafficSource.medium, channelGrouping, # mobile or desktop device.deviceCategory, # geographic IFNULL(geoNetwork.country, "") AS country FROM `data-to-insights.ecommerce.web_analytics`, UNNEST(hits) AS h JOIN all_visitor_stats USING(fullvisitorid) WHERE 1=1 # only predict for new visits AND totals.newVisits = 1 AND date BETWEEN '20160801' AND '20170430' # train 9 months GROUP BY unique_session_id, will_buy_on_return_visit, bounces, time_on_site, totals.pageviews, trafficSource.source, trafficSource.medium, channelGrouping, device.deviceCategory, country ); Nota: Todavía estás entrenando sobre los mismos primeros 9 meses de datos, incluso con este nuevo modelo. Es importante tener el mismo conjunto de datos de entrenamiento para garantizar que un mejor resultado del modelo se puede atribuir a mejores atributos de entrada y no a datos de entrenamiento nuevos o diferentes.

Un nuevo atributo clave que se agregó a la consulta del conjunto de datos de entrenamiento es el progreso máximo en el proceso de confirmación de la compra que cada visitante alcanzó en su sesión, que se registra en el campo hits.eCommerceAction.action_type. Si lo buscas en las definiciones de los campos, verás que tiene la asignación de campo de “compra completada = 6”.

Nota: El conjunto de datos de estadísticas web anidó y repitió campos como ARRAYS que deben dividirse en filas separadas en tu conjunto de datos. Esto se logra con el uso de la función UNNEST(), que puedes ver en la consulta anterior.
  1. Espera a que el modelo nuevo termine el entrenamiento (de 5 a 10 minutos).

Haz clic en Revisar mi progreso para verificar el objetivo.

Mejorar el rendimiento del modelo con la ingeniería de atributos (Crear un segundo modelo)
  1. Evalúa este modelo nuevo para ver si tiene mejor poder predictivo:
#standardSQL SELECT roc_auc, CASE WHEN roc_auc > .9 THEN 'good' WHEN roc_auc > .8 THEN 'fair' WHEN roc_auc > .7 THEN 'decent' WHEN roc_auc > .6 THEN 'not great' ELSE 'poor' END AS model_quality FROM ML.EVALUATE(MODEL ecommerce.classification_model_2, ( WITH all_visitor_stats AS ( SELECT fullvisitorid, IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit FROM `data-to-insights.ecommerce.web_analytics` GROUP BY fullvisitorid ) # add in new features SELECT * EXCEPT(unique_session_id) FROM ( SELECT CONCAT(fullvisitorid, CAST(visitId AS STRING)) AS unique_session_id, # labels will_buy_on_return_visit, MAX(CAST(h.eCommerceAction.action_type AS INT64)) AS latest_ecommerce_progress, # behavior on the site IFNULL(totals.bounces, 0) AS bounces, IFNULL(totals.timeOnSite, 0) AS time_on_site, totals.pageviews, # where the visitor came from trafficSource.source, trafficSource.medium, channelGrouping, # mobile or desktop device.deviceCategory, # geographic IFNULL(geoNetwork.country, "") AS country FROM `data-to-insights.ecommerce.web_analytics`, UNNEST(hits) AS h JOIN all_visitor_stats USING(fullvisitorid) WHERE 1=1 # only predict for new visits AND totals.newVisits = 1 AND date BETWEEN '20170501' AND '20170630' # eval 2 months GROUP BY unique_session_id, will_buy_on_return_visit, bounces, time_on_site, totals.pageviews, trafficSource.source, trafficSource.medium, channelGrouping, device.deviceCategory, country ) ));

Resultado:

Fila

roc_auc

model_quality

1

0.9094875124875125

good

Con este nuevo modelo, ahora obtienes un roc_auc de 0.91, que es significativamente mejor que el primer modelo.

Ahora que tienes un modelo entrenado, es hora de hacer algunas predicciones.

Haz clic en Revisar mi progreso para verificar el objetivo.

Mejorar el rendimiento de los modelos con la ingeniería de atributos (mejor poder predictivo)

Tarea 8. Predice qué nuevos visitantes regresarán y realizarán una compra

A continuación, escribirás una consulta para predecir qué nuevos visitantes regresarán y realizarán una compra.

  • La siguiente consulta de predicción utiliza el modelo de clasificación mejorado para predecir la probabilidad de que un visitante nuevo de Google Merchandise Store realice una compra en una próxima visita:
SELECT * FROM ml.PREDICT(MODEL `ecommerce.classification_model_2`, ( WITH all_visitor_stats AS ( SELECT fullvisitorid, IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit FROM `data-to-insights.ecommerce.web_analytics` GROUP BY fullvisitorid ) SELECT CONCAT(fullvisitorid, '-',CAST(visitId AS STRING)) AS unique_session_id, # labels will_buy_on_return_visit, MAX(CAST(h.eCommerceAction.action_type AS INT64)) AS latest_ecommerce_progress, # behavior on the site IFNULL(totals.bounces, 0) AS bounces, IFNULL(totals.timeOnSite, 0) AS time_on_site, totals.pageviews, # where the visitor came from trafficSource.source, trafficSource.medium, channelGrouping, # mobile or desktop device.deviceCategory, # geographic IFNULL(geoNetwork.country, "") AS country FROM `data-to-insights.ecommerce.web_analytics`, UNNEST(hits) AS h JOIN all_visitor_stats USING(fullvisitorid) WHERE # only predict for new visits totals.newVisits = 1 AND date BETWEEN '20170701' AND '20170801' # test 1 month GROUP BY unique_session_id, will_buy_on_return_visit, bounces, time_on_site, totals.pageviews, trafficSource.source, trafficSource.medium, channelGrouping, device.deviceCategory, country ) ) ORDER BY predicted_will_buy_on_return_visit DESC;

Las predicciones se realizan en función de los datos del último mes (de un total de 12 meses) del conjunto de datos.

Haz clic en Revisar mi progreso para verificar el objetivo.

Predice qué nuevos visitantes regresarán y realizarán una compra

Tu modelo ahora mostrará el resultado de sus predicciones para las sesiones de comercio electrónico de julio de 2017. Puedes ver tres campos recién agregados:

  • predicted_will_buy_on_return_visit: si el modelo considera que el visitante comprará después (1 = sí)
  • predicted_will_buy_on_return_visit_probs.label: el clasificador binario para sí/no
  • predicted_will_buy_on_return_visit.probs.prob: la confianza que el modelo tiene en su predicción (1 = 100%)

Página con pestañas de resultados de consultas

Tarea 9. Analiza los resultados y la información adicional

Resultados

  • Del 6% principal de los visitantes nuevos (ordenados en forma decreciente de probabilidad prevista), más del 6% realiza una compra en una visita posterior.
  • Estos usuarios representan casi el 50% de todos los visitantes nuevos que realizan una compra en una visita posterior.
  • En general, solo el 0.7% de los visitantes nuevos realizan una compra en una visita posterior.
  • Segmentar las campañas para el 6% principal de los visitantes nuevos aumenta 9 veces el ROI de marketing en comparación con segmentarlas para todos.

Información adicional

Sugerencia: Agrega warm_start = true a las opciones de tu modelo si vuelves a entrenar datos nuevos en un modelo existente para lograr tiempos de entrenamiento más rápidos. Ten en cuenta que no puedes cambiar las columnas de atributos (esto requeriría un nuevo modelo).

roc_auc es solo una de las métricas de rendimiento disponibles durante la evaluación del modelo. También están disponibles las de exactitud, precisión y recuperación. Saber en qué métrica de rendimiento confiar depende en gran medida de cuál es tu objetivo o meta general.

Otros conjuntos de datos para explorar

Puedes utilizar el proyecto bigquery-public-data si deseas explorar el modelado en otros conjuntos de datos, como las tarifas de previsión para viajes en taxi.

  1. Para abrir el conjunto de datos bigquery-public-data, haz clic en +Agregar. Haz clic en Destaca un proyecto por nombre dentro de Fuentes adicionales.
  2. Luego, escribe el nombre de bigquery-public-data.
  3. Haz clic en Destacar.

El proyecto bigquery-public-data aparecerá en la sección Explorador.

Tarea 10. Pon a prueba tus conocimientos

Para poner a prueba tus conocimientos sobre Google Cloud Platform, realiza nuestro cuestionario.

¡Felicitaciones!

Creaste correctamente un modelo de AA en BigQuery para clasificar a los visitantes de comercio electrónico.

Finaliza la Quest

Este lab de autoaprendizaje forma parte de las Quests BigQuery for Machine Learning y Applying BigQuery ML's Classification, Regression, and Demand Forecasting for Retail Applications. Una Quest es una serie de labs relacionados que forman una ruta de aprendizaje. Si completas esta Quest, obtendrás una insignia como reconocimiento por tu logro. Puedes hacer públicas tus insignias y agregar vínculos a ellas en tu currículum en línea o en tus cuentas de redes sociales. Inscríbete en cualquier Quest que contenga este lab y obtén un crédito inmediato de finalización. Consulta el catálogo de Google Cloud Skills Boost para ver todas las Quests disponibles.

Realiza tu próximo lab

Próximos pasos y más información

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Última actualización del manual: 9 de octubre de 2023

Prueba más reciente del lab: 9 de octubre de 2023

Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.