Puntos de control
Create a new dataset
/ 20
Create a model and specify model options
/ 20
Evaluate classification model performance
/ 15
Improve model performance with Feature Engineering(Create second model)
/ 15
Improve model performance with Feature Engineering(Better predictive power)
/ 15
Predict which new visitors will come back and purchase
/ 15
Prediga las compras de visitantes con un modelo de clasificación en BQML
GSP229
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
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
-
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
-
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. -
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.
-
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. -
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.
Cómo abrir la consola de BigQuery
- 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.
- 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:
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.
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.
- 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.
-
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.
- Haga clic en Crear conjunto de datos.
Haga clic en Revisar mi progreso para verificar el objetivo.
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.
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.
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:
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.
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.
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.
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.
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%)
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.
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:
- Cloud Composer: Copy BigQuery Tables Across Different Locations
- Building an IoT Analytics Pipeline on Google Cloud
Próximos pasos/Más información
- ¿Ya tiene una cuenta de Google Analytics y desea consultar sus propios conjuntos de datos en BigQuery? Siga esta guía de exportación.
- La guía de referencia completa de BigQuery SQL se incluye aquí como un recurso adicional: https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax
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.