arrow_back

Predice las compras de visitantes con un modelo de clasificación en BQML (versión 1.5)

Acceder Unirse
Obtén acceso a más de 700 labs y cursos

Predice las compras de visitantes con un modelo de clasificación en BQML (versión 1.5)

Lab 1 hora 15 minutos universal_currency_alt 5 créditos show_chart Avanzado
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Obtén acceso a más de 700 labs y cursos

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. Además, permite que te enfoques en el análisis de datos para buscar estadísticas valiosas.

BigQuery Machine Learning (BQML, producto en versión beta) es una función nueva 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.

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

Objetivos

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 BQML
  • Evaluar el rendimiento de tu modelo de aprendizaje automático
  • Predecir y clasificar la probabilidad de que un visitante realice una compra

Requisitos

  • Un proyecto de Google Cloud Platform
  • Un navegador, como Google Chrome o Mozilla Firefox

Configuración y requisitos

En cada lab, recibirá un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.

  1. Accede a Qwiklabs desde una ventana de incógnito.

  2. Ten en cuenta el tiempo de acceso del lab (por ejemplo, 1:15:00) y asegúrate de finalizarlo en el plazo asignado.
    No existe una función de pausa. Si lo necesita, puede reiniciar el lab, pero deberá hacerlo desde el comienzo.

  3. Cuando esté listo, haga clic en Comenzar lab.

  4. Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.

  5. Haga clic en Abrir Google Console.

  6. Haga clic en Usar otra cuenta, copie las credenciales para este lab y péguelas en el mensaje emergente que aparece.
    Si usa otras credenciales, se generarán errores o incurrirá en cargos.

  7. Acepta las condiciones y omite la página de recursos de recuperación.

Tarea 1. Fija el proyecto del lab en BigQuery

  1. Haga clic en el menú de Navegación > BigQuery.

nav_bq.png

Se abre el cuadro de mensaje Bienvenido a BigQuery en el Cloud Console.

El cuadro de mensaje Bienvenido a BigQuery en el Cloud Console proporciona un enlace a la guía de inicio rápido y a las actualizaciones de la interfaz de usuario.
  1. Haga clic en Listo.

Los conjuntos de datos públicos de BigQuery no se muestran por defecto en la interfaz web de BigQuery. Para abrir el proyecto de conjuntos de datos públicos

pin.png

  1. Haga clic en + Agregar datos.
  2. Seleccione Fijar un proyecto > Ingresar nombre del proyecto.
  3. En el nombre del proyecto introduzca data-to-insights.
  4. Haga clic en Fijar.

pindata.png

  1. En el panel izquierdo, en Visualizando los proyectos fijados, usted podrá ver el proyecto data-to-insights fijado.

pinview.png

Accede al conjunto de datos del curso

  • Una vez que BigQuery esté abierto, haz clic en el vínculo directo que se encuentra a continuación para llevar el proyecto público de data-to-insights a tu panel de proyectos de BigQuery:

console.cloud.google.com/bigquery?p=data-to-insights&d=ecommerce&t=web_analytics&page=table

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

Tarea 2. 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. Agrega esta consulta en el editor de consultas:
#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. Luego, haz clic en Ejecutar.

Este es el resultado: 2.69%.

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

  • Agrega esta consulta en el editor de consultas y, luego, haz clic en Ejecutar:
#standardSQL 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;

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?

  • Agrega esta consulta en el editor de consultas y, luego, haz clic en Ejecutar:
#standardSQL # 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

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 / 729848) = 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 3. 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 a tu sitio de comercio electrónico.

Tarea 4. 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 y, luego, obtén una vista previa del conjunto de datos de demostración para buscar atributos útiles que ayudarán al modelo de aprendizaje automático a comprender la relación entre los datos de la primera visita a tu sitio web por parte de un usuario, y si este 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.

  • Agrega esta consulta en el editor de consultas:
#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) 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;
  1. Luego, haz clic en Ejecutar.

Estos son los 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

¿Qué campos son los atributos del modelo? ¿cuál es la etiqueta (respuesta correcta)?

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 compras futuras en función de los datos obtenidos 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 5. 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. En la consola de BigQuery, haz clic en Ver acciones (los tres puntos) y, luego, en Crear conjunto de datos.

La opción Crear conjunto de datos destacada

  1. En ID de conjunto de datos, escribe ecommerce. Deja todas las otras opciones en los valores predeterminados (Ubicación de los datos y Vencimiento predeterminado de la tabla).

  2. Haz clic en Crear conjunto de datos.

Ahora verás el conjunto de datos de comercio electrónico debajo del nombre de tu proyecto.

Haz clic en Revisar mi progreso para verificar el objetivo.

Crear un conjunto de datos nuevo

Tarea 6. Selecciona un tipo de modelo de BQML 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. Hasta el momento en que se redacta este lab, BQML 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.

  1. Agrega esta consulta en el editor de consultas para crear un modelo y especifica las opciones del modelo:
#standardSQL CREATE OR REPLACE MODEL `ecommerce.classification_model` OPTIONS ( model_type='logistic_reg', input_label_cols = ['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. Luego, haz clic en Ejecutar para entrenar tu modelo.

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. Para lograr esto, agrega una condición de la cláusula WHERE que se usa para filtrar y entrenar en solo los primeros 9 meses de datos de sesión en tu conjunto de datos de 12 meses.

Haz clic en Revisar mi progreso para verificar el objetivo.

Crear un modelo y especificar sus opciones

Luego del entrenamiento del modelo, verás un mensaje similar al siguiente: “This statement will create a new model named qwiklabs-gcp-01-00af1a3268df:ecommerce.classification_model. Depending on the type of model, this may take several hours to complete”. Esto indica que tu modelo se entrenó correctamente.

  1. Explora dentro del conjunto de datos de tu proyecto y confirma que ahora aparece classification_model.

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

Tarea 7. 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 la que se ilustra la tasa de verdaderos positivos en comparación con la tasa de falsos positivos

En BQML, roc_auc es simplemente un campo para consultas cuando evalúas tu modelo de AA entrenado.

Ahora que el entrenamiento se completó, puedes evaluar qué tan bien se desempeña el modelo con esta consulta usando ML.EVALUATE.

  • Agrega esta consulta en el editor de consultas y, luego, haz clic en Ejecutar:
#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, ( 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.724588 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.

Evaluar el rendimiento del modelo de clasificación

Tarea 8. 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 realice una compra en una visita posterior.

Agreguemos algunos atributos nuevos y creemos un segundo modelo de aprendizaje automático que se llamará 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 agregando esta consulta en el editor de consultas y, luego, haz clic en Ejecutar:
#standardSQL CREATE OR REPLACE MODEL `ecommerce.classification_model_2` OPTIONS (model_type='logistic_reg', input_label_cols = ['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, # input_label_cols 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 a partir de los mismos primeros 9 meses de datos, incluso con este modelo nuevo. 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”.

Además, 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 mediante el uso de la función UNNEST(), que puede ver en la consulta anterior.

Espera a que el nuevo modelo 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)

Evalúa este modelo nuevo para ver si hay mejor poder predictivo.

  1. Agrega esta consulta en el editor de consultas y, luego, haz clic en Ejecutar:
#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, # input_label_cols 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.910382 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 9. 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 que entrenamos anteriormente para predecir la probabilidad de que un visitante nuevo en Google Merchandise Store realice una compra en una visita posterior. Las predicciones se realizan en los datos del último mes (de un total de 12 meses) del conjunto de datos.

  • Agrega esta consulta en el editor de consultas y, luego, haz clic en Ejecutar:
#standardSQL 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, # input_label_cols 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;

Haz clic en Revisar mi progreso para verificar el objetivo.

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

Ahora tu modelo mostrará los resultados de las 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.prob: la confianza que el modelo tiene en su predicción (1 = 100%)

Resultado de predicción

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 siguiente vínculo para introducir 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:

Tarea 10. Pon a prueba tus conocimientos

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

Felicitaciones

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

Finalice su lab

Cuando haya completado el lab, haga clic en Finalizar lab. Google Cloud Skills Boost quitará los recursos que usó y limpiará la cuenta.

Tendrá la oportunidad de calificar su experiencia en el lab. Seleccione la cantidad de estrellas que corresponda, ingrese un comentario y haga clic en Enviar.

La cantidad de estrellas indica lo siguiente:

  • 1 estrella = Muy insatisfecho
  • 2 estrellas = Insatisfecho
  • 3 estrellas = Neutral
  • 4 estrellas = Satisfecho
  • 5 estrellas = Muy satisfecho

Puede cerrar el cuadro de diálogo si no desea proporcionar comentarios.

Para enviar comentarios, sugerencias o correcciones, use la pestaña Asistencia.

Copyright 2020 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.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usa una ventana de navegación privada o de Incógnito para ejecutar el 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.