arrow_back

Prediga las compras de visitantes con un modelo de clasificación en BQML

Unirse Acceder

Prediga las compras de visitantes con un modelo de clasificación en BQML

1 hora 15 minutos Gratis

GSP229

Labs de autoaprendizaje de Google Cloud

Descripción general

BigQuery es la base de datos de estadísticas de Google de bajo costo, no-ops y completamente administrada. Con BigQuery, puede 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 prepago. BigQuery le permite enfocarse en el análisis de datos para buscar estadísticas valiosas.

El BigQuery Machine Learning (BQML, producto en versión Beta) es una nueva función de BigQuery en la que los analistas de datos pueden crear, entrenar, evaluar y predecir con modelos de aprendizaje automático y codificació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á estos datos para ejecutar algunas consultas típicas que las empresas querrían conocer sobre los hábitos de compra de sus clientes.

Objetivos

En este lab, aprenderá 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 su 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

Configure su entorno

Antes de hacer clic en el botón Comenzar lab

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

Este lab práctico de Qwiklabs le permitirá llevar a cabo las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, le proporciona credenciales temporales nuevas que utilizará para acceder a Google Cloud durante todo el lab.

Qué necesita

Para completar este lab, necesitará lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
  • Tiempo para completar el lab

Nota: Si ya tiene un proyecto o una cuenta personal de Google Cloud, no los use para este lab.

Nota: Si usa un dispositivo con Chrome OS, ejecute este lab en una ventana de incógnito.

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.

Acceda al conjunto de datos del curso

Cuando BigQuery esté abierto, abra en una nueva pestaña de navegador el vínculo directo que se muestra a continuación para mover el proyecto público data-to-insights a su panel de proyectos de BigQuery:

data-to-insight.png

Las definiciones de campo para el conjunto de datos de comercio electrónico de data-to-insights se encuentran aquí. Mantenga el vínculo abierto en una nueva pestaña como referencia.

Para evitar confusiones, cierre una de las pestañas del navegador de BigQuery.

Nota: Si el proyecto público data-to-insights no aparece en el panel Explorador, haga clic en + AGREGAR DATOS -> Fijar un proyecto -> Ingrese el nombre del proyecto (data-to-insights) y Fijar.

Explore datos de comercio electrónico

Situación: Su 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 sesión sin procesar de visitantes de comercio electrónico para que los explore. Con estos datos, intentará responder algunas preguntas.

Pregunta: Del total de visitantes que ingresaron a nuestro sitio web, ¿qué porcentaje realizó una compra?

Copie y pegue la siguiente consulta en el Editor de consultas 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

Haga clic en Ejecutar.

El resultado: 2.69%

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

Haga clic en Redactar consulta nueva para borrar la consulta anterior y, luego, agregue la siguiente consulta en el Editor de consultas:

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;

Haga clic en Ejecutar

Este es el resultado:

Row

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?

Ejecute la siguiente consulta para averiguarlo:

# 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:

Row

total_visitors

will_buy_on_return_visit

1

729848

0

2

11873

1

Al analizar los resultados, puede 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, donde el cliente requiere significativas tareas de investigación y comparación por adelantado antes de decidir (piense 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 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.

Identifique un objetivo

Ahora creará 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 alto valor puede ayudar a su equipo de marketing a orientar promociones especiales y campañas publicitarias para asegurar una conversión mientras comparan los precios entre las visitas a su sitio de comercio electrónico.

Seleccione atributos y cree su conjunto de datos de entrenamiento

Google Analytics captura una amplia variedad de dimensiones y medidas sobre la visita de un usuario a este sitio web de comercio electrónico. Explore la lista completa de campos aquí y, luego, obtenga 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 su sitio web por parte de un usuario, y si este volverá y realizará una compra.

Su equipo decide probar si estos dos campos son buenas entradas para su 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 sus atributos de entrada y su etiqueta (en este caso, si el visitante compró en una visita posterior), entonces no tendrá un modelo preciso. Si bien entrenar un modelo utilizando solo estos dos campos es un comienzo, verá si son lo suficientemente buenos como para producir un modelo preciso.

En el Editor de consultas, ejecute 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:

Row

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?

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 su sitio web y compraron. Debido a que no conoce el futuro en el momento de la predicción, no puede decir con certeza si un nuevo visitante regresará y comprará. El valor de compilar un modelo de ML 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, ¿cree 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.

Cree un conjunto de datos de BigQuery para almacenar modelos

A continuación, cree un nuevo conjunto de datos de BigQuery que también almacenará sus modelos de ML.

  1. En el panel izquierdo, en la sección Explorador, haga clic en el icono Ver acciones al lado del nombre de su proyecto (comienza con qwiklabs-gcp-...), y luego haga clic en Crear un conjunto de datos.

Create_Dataset1.png

  1. En el diálogo Crear conjunto de datos, haga lo siguiente:

  • En ID de conjunto de datos, escriba "ecommerce".
  • Deje los otros valores en su configuración predeterminada.

dataset_name1.png

  1. Haga clic en Crear conjunto de datos.

Haga clic en Revisar mi progreso para verificar el objetivo.

Cree un nuevo conjunto de datos

Seleccione un tipo de modelo de BQML y especifique las opciones

Ahora que ya seleccionó sus atributos iniciales, está listo para crear su primer modelo de ML 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

¿Qué tipo de modelo debería elegir?

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

Mediante la siguiente consulta, se creará un modelo y se especificarán las opciones del modelo. Ejecútela para entrenar su 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)
;

Espere a que el modelo se entrene (de 5 a 10 minutos).

Haga clic en Revisar mi progreso para verificar el objetivo.

Cree un modelo y especifique las opciones del modelo

Luego del entrenamiento del modelo, verá el mensaje "Esta declaración creó un nuevo modelo con el nombre qwiklabs-gcp-xxxxxxxxx:ecommerce.classification_model".

Haga clic en Ir al modelo.

Observe el conjunto de datos de comercio electrónico y confirme que aparezca classification_model.

Classification_model1.png

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

Evalúe el rendimiento del modelo de clasificación

Seleccione sus criterios de rendimiento

Para los problemas de clasificación en ML, desea 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í, donde intenta maximizar el área bajo la curva o AUC:

42fc12b6077e4784.png

En BQML, roc_auc es simplemente un campo para consultas al evaluar su modelo de ML entrenado.

Ahora que el entrenamiento se completó, ejecute esta consulta para evaluar qué tan bien se desempeña el modelo mediante 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ía ver el siguiente resultado:

Row

roc_auc

model_quality

1

0.724588

decent

Después de evaluar su modelo, obtiene 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.

Haga clic en Revisar mi progreso para verificar el objetivo.

Evalúe el rendimiento del modelo de clasificación

Mejore 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.

Agregue atributos nuevos y cree 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)

Cree este segundo modelo haciendo clic en REDACTAR CONSULTA

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
);

Un nuevo atributo clave que se agregó a la consulta del conjunto de datos de entrenamiento es el progreso máximo del 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 busca ese campo en las definiciones de campo, verá la asignación de campo de 6 = Completed Purchase.

Espere a que el modelo nuevo termine el entrenamiento (de 5 a 10 minutos).

Haga clic en Revisar mi progreso para verificar el objetivo.

Mejore el rendimiento del modelo con la ingeniería de atributos (cree un segundo modelo)

Evalúe este nuevo modelo para ver si hay 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)

Row

roc_auc

model_quality

1

0.9094875124875125

good

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

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

Haga clic en Revisar mi progreso para verificar el objetivo.

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

Prediga qué nuevos visitantes regresarán y comprarán

A continuación, escribirá 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 el último mes (de un total de 12 meses) del conjunto de datos.

Haga clic en Revisar mi progreso para verificar el objetivo.

Prediga qué nuevos visitantes regresarán y comprarán

Su modelo ahora mostrará el resultado de sus predicciones para las sesiones de comercio electrónico de julio de 2017. Puede 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 binary para sí / no
  • predicted_will_buy_on_return_visit.prob: la confianza que el modelo tiene en su predicción (1 = 100%)

QueryResult1.png

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.

  • Orientar las campañas al 6% principal de los visitantes nuevos aumenta el ROI 9 veces en comparación con orientarlas a todos.

Información adicional

Sugerencia: Agregue warm_start = true a las opciones de su modelo si vuelve a entrenar datos nuevos en un modelo existente para lograr tiempos de entrenamiento más rápidos. Tenga en cuenta que no puede 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 exactitud, precisión y recuperación. Saber en qué métrica de rendimiento confiar depende en gran medida de cuál es su objetivo o meta general.

Otros conjuntos de datos para explorar

Puede utilizar el siguiente vínculo para introducir el proyecto bigquery-public-data si desea explorar el modelado en otros conjuntos de datos, como las tarifas de previsión para viajes en taxi:

Ponga a prueba sus conocimientos

Para poner a prueba sus conocimientos sobre Google Cloud Platform, realice nuestro cuestionario.

Felicitaciones

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

completion_badge_Data_Engineering-135.png completion_badge_BigQuery_for_Machine_Learning-135.png completion_badge_BQML_for_Machine_Learning-135.png

Finalice su Quest

Este lab de autoaprendizaje forma parte de las Quests de Qwiklabs Data Engineering, BigQuery for Machine Learning y Applying BQML's Classification, Regression, and Demand Forecasting for Retail Applications. Una Quest es una serie de labs relacionados que forman una ruta de aprendizaje. Si completa esta Quest, obtendrá una insignia como reconocimiento por su logro. Puede hacer públicas sus insignias y agregar vínculos a ellas en su currículum en línea o en sus cuentas de redes sociales. Inscríbase en cualquiera de las Quests y obtenga un crédito inmediato de finalización si realizó este lab. Consulte otras Quests de Qwiklabs disponibles.

Realice su próximo lab

Continúe su Quest con Predict Housing Prices with Tensorflow and AI Platform revise estas sugerencias:

Próximos pasos/Más información

Google Cloud Training & Certification

Aproveche al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarlo a ponerse en marcha rápidamente y a seguir aprendiendo. Para que pueda realizar nuestros cursos cuando más le convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: según demanda, presenciales y virtuales. Las certificaciones lo ayudan a validar y demostrar sus habilidades y experiencia en las tecnologías de Google Cloud.

Última actualización del manual: 28 abril 2022
Prueba más reciente del lab: 28 abril 2022

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.