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
En cada lab, recibirá un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.
Accede a Qwiklabs desde una ventana de incógnito.
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.
Cuando esté listo, haga clic en Comenzar lab.
Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.
Haga clic en Abrir Google Console.
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.
Acepta las condiciones y omite la página de recursos de recuperación.
Tarea 1. Fija el proyecto del lab en BigQuery
Haga clic en el menú de Navegación > BigQuery.
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.
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
Haga clic en + Agregar datos.
Seleccione Fijar un proyecto > Ingresar nombre del proyecto.
En el nombre del proyecto introduzca data-to-insights.
Haga clic en Fijar.
En el panel izquierdo, en Visualizando los proyectos fijados, usted podrá ver el proyecto data-to-insights fijado.
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:
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?
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
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;
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;
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.
En la consola de BigQuery, haz clic en Ver acciones (los tres puntos) y, luego, en Crear conjunto de datos.
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).
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.
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)
;
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.
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:
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)
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.
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%)
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:
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.
Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
.
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.
En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar
Usa la navegación privada
Copia el nombre de usuario y la contraseña proporcionados para el lab
Haz clic en Abrir la consola en modo privado
Accede a la consola
Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
Acepta las condiciones y omite la página de recursos de recuperación
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.
En este lab, utilizarás un conjunto de datos de comercio electrónico recientemente disponible para ejecutar algunas consultas típicas que las empresas querrían conocer acerca de los hábitos de compra de sus clientes.
Duración:
0 min de configuración
·
Acceso por 75 min
·
60 min para completar