arrow_back

Predice las tarifas de taxis con un modelo de previsión de AA de BigQuery

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

Predice las tarifas de taxis con un modelo de previsión de AA de BigQuery

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

GSP246

Labs de autoaprendizaje de Google Cloud

Descripción general

BigQuery es la base de datos analítica de bajo costo, no-ops y completamente administrada de Google. Con BigQuery, puedes consultar muchos terabytes de datos sin tener que administrar ninguna infraestructura y sin la necesidad de un administrador de base de datos.

BigQuery Machine Learning (BQML) es donde los analistas de datos pueden crear, entrenar, evaluar y predecir con modelos de aprendizaje automático y programación mínima.

En este lab, explorarás millones de viajes de taxis amarillos de la ciudad de Nueva York disponibles en un conjunto de datos públicos de BigQuery. Crearás un modelo de aprendizaje automático en BigQuery para predecir la tarifa del viaje en función de las entradas de tu modelo, evaluarás su rendimiento y harás predicciones con él.

Qué aprenderás

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

  • Utilizar BigQuery para buscar conjuntos de datos públicos
  • Consultar y explorar el conjunto de datos públicos de taxis
  • Crear un conjunto de datos de entrenamiento y evaluación para usar en la predicción por lotes
  • Crear un modelo de previsión (regresión lineal) en BQML
  • Evaluar el rendimiento de tu modelo de aprendizaje automático

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

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

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

Para completar este lab, necesitarás lo siguiente:

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

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

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

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

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

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

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

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

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

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

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

Cómo abrir la consola de BigQuery

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

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

  1. Haga clic en Listo.

Se abrirá la consola de BigQuery.

Tarea 1: Explora los datos de taxis de NYC

Pregunta: ¿Cuántos viajes por mes hicieron los taxis amarillos en 2015?

  1. Copia el siguiente código SQL y pégalo en el EDITOR de consultas:
#standardSQL SELECT TIMESTAMP_TRUNC(pickup_datetime, MONTH) month, COUNT(*) trips FROM `bigquery-public-data.new_york.tlc_yellow_trips_2015` GROUP BY 1 ORDER BY 1
  1. Luego, haz clic en Ejecutar.

Deberías recibir el siguiente resultado:

Varias filas de datos debajo de los encabezados de dos columnas: “month” y “trips”

Como podemos ver, todos los meses del año 2015 hubo más de 10 millones de viajes en taxi en la ciudad de Nueva York. No es una cantidad pequeña.

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si la completaste correctamente, se te otorgará una puntuación de evaluación.

Calcular la cantidad de viajes realizados por los taxis amarillos en cada mes de 2015

Pregunta: ¿Cuál fue la velocidad promedio de los viajes de taxis amarillos en 2015?

  • Reemplaza la consulta anterior por lo siguiente y, luego, haz clic en Ejecutar:
#standardSQL SELECT EXTRACT(HOUR FROM pickup_datetime) hour, ROUND(AVG(trip_distance / TIMESTAMP_DIFF(dropoff_datetime, pickup_datetime, SECOND))*3600, 1) speed FROM `bigquery-public-data.new_york.tlc_yellow_trips_2015` WHERE trip_distance > 0 AND fare_amount/trip_distance BETWEEN 2 AND 10 AND dropoff_datetime > pickup_datetime GROUP BY 1 ORDER BY 1

Deberías recibir el siguiente resultado:

Varias filas de datos debajo de los encabezados de dos columnas: “hour” y “speed”

Durante el día, la velocidad promedio es de aproximadamente 18 a 19 km/h; pero, a las 5:00 a.m., la velocidad promedio casi se duplica a 34 km/h. Por intuición, esto tiene sentido, ya que probablemente haya menos tráfico en las calles a las 5:00 a.m.

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si la completaste correctamente, se te otorgará una puntuación de evaluación.

Calcular la velocidad promedio de los viajes de taxis amarillos en 2015

Tarea 2: Identifica un objetivo

Ahora crearás un modelo de aprendizaje automático en BigQuery para predecir el precio de un viaje en taxi en la ciudad de Nueva York basándote en el conjunto de datos históricos y los datos de viajes. Predecir la tarifa antes de acceder al servicio puede resultar muy útil cuando se trata de la planificación de viajes, tanto en el caso del pasajero como de la agencia de taxis.

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

El conjunto de datos de taxis amarillos de la ciudad de Nueva York es un conjunto de datos públicos que proporciona la ciudad y que se cargó en BigQuery para que lo puedas analizar.

Explora la lista completa de campos y, luego, obtén una vista previa del conjunto de datos en busca de atributos útiles que ayudarán a que un modelo de aprendizaje automático comprenda la relación entre los datos sobre viajes históricos en taxi y el precio de la tarifa.

Tu equipo decide probar si estos campos representan buenas entradas para tu modelo de previsión de tarifas:

  • Importe de peaje
  • Importe de tarifa
  • Hora del día
  • Dirección de partida
  • Dirección de destino
  • Cantidad de pasajeros
  1. Reemplaza la consulta por los siguientes valores:
#standardSQL WITH params AS ( SELECT 1 AS TRAIN, 2 AS EVAL ), daynames AS (SELECT ['Sun', 'Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat'] AS daysofweek), taxitrips AS ( SELECT (tolls_amount + fare_amount) AS total_fare, daysofweek[ORDINAL(EXTRACT(DAYOFWEEK FROM pickup_datetime))] AS dayofweek, EXTRACT(HOUR FROM pickup_datetime) AS hourofday, pickup_longitude AS pickuplon, pickup_latitude AS pickuplat, dropoff_longitude AS dropofflon, dropoff_latitude AS dropofflat, passenger_count AS passengers FROM `nyc-tlc.yellow.trips`, daynames, params WHERE trip_distance > 0 AND fare_amount > 0 AND MOD(ABS(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING))),1000) = params.TRAIN ) SELECT * FROM taxitrips

Observa algunos puntos sobre la consulta:

  • La parte principal de la consulta se encuentra al final (SELECT * from taxitrips).
  • taxitrips hace la mayor parte de la extracción del conjunto de datos de la ciudad de Nueva York. La variable SELECT contiene tu etiqueta y los atributos de entrenamiento.
  • La variable WHERE quita los datos sobre los que no deseas entrenar.
  • WHERE también incluye una cláusula de muestra para seleccionar solo 1/1,000 de los datos.
  • Define una variable llamada TRAIN para poder compilar con rapidez un conjunto EVAL independiente.
  1. Ahora que comprendes mejor el propósito de esta consulta, haz clic en Ejecutar.

Deberías obtener un resultado similar al siguiente:

Tabla de resultados de la consulta

¿Cuál es la etiqueta (respuesta correcta)?

total_fare es la etiqueta (lo que vas a predecir). Creaste este campo a partir de tolls_amount y fare_amount para poder ignorar las propinas de los clientes como parte del modelo, ya que estas son a discreción.

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si la completaste correctamente, se te otorgará una puntuación de evaluación.

Probar si los campos son buenas entradas para tu modelo de previsión de tarifas

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

En esta sección, crearás un conjunto de datos nuevo de BigQuery que almacenará tus modelos de AA.

  1. En el panel Explorador, que se encuentra a la izquierda, haz clic en el ícono Ver acciones junto al ID del proyecto y, luego, haz clic en Crear conjunto de datos.

  2. En el diálogo Crear conjunto de datos, ingresa lo siguiente:

  • En ID de conjunto de datos, escribe taxi.
  • Selecciona us (varias regiones en Estados Unidos) como el Tipo de ubicación.
  • Deja los demás valores en la configuración predeterminada.
  1. Luego, haz clic en Crear conjunto de datos.

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si la completaste correctamente, se te otorgará una puntuación de evaluación.

Crear un conjunto de datos de BigQuery para almacenar modelos

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

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

Hay varios tipos de modelos entre los cuales puede elegir:

  • La previsión de valores numéricos, como las ventas del mes próximo, con regresión lineal (linear_reg).
  • La clasificación binaria o multiclase, como los correos electrónicos deseados y no deseados, con regresión logística (logistic_reg).
  • El agrupamiento en clústeres de k-means si deseas un aprendizaje sin supervisión de exploración (kmeans).
Nota: Existen muchos tipos de modelos adicionales que se usan en el aprendizaje automático (como las redes neuronales y los árboles de decisión) y que están disponibles en bibliotecas como TensorFlow. En este momento, BQML es compatible con los tres modelos mencionados anteriormente. Sigue la hoja de ruta de BQML para obtener más información.

  1. Ingresa la siguiente consulta para crear un modelo y especifica sus opciones.
CREATE or REPLACE MODEL taxi.taxifare_model OPTIONS (model_type='linear_reg', labels=['total_fare']) AS WITH params AS ( SELECT 1 AS TRAIN, 2 AS EVAL ), daynames AS (SELECT ['Sun', 'Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat'] AS daysofweek), taxitrips AS ( SELECT (tolls_amount + fare_amount) AS total_fare, daysofweek[ORDINAL(EXTRACT(DAYOFWEEK FROM pickup_datetime))] AS dayofweek, EXTRACT(HOUR FROM pickup_datetime) AS hourofday, pickup_longitude AS pickuplon, pickup_latitude AS pickuplat, dropoff_longitude AS dropofflon, dropoff_latitude AS dropofflat, passenger_count AS passengers FROM `nyc-tlc.yellow.trips`, daynames, params WHERE trip_distance > 0 AND fare_amount > 0 AND MOD(ABS(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING))),1000) = params.TRAIN ) SELECT * FROM taxitrips
  1. Luego, haz clic en Ejecutar para entrenar tu modelo.

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

Luego del entrenamiento del modelo, verás el mensaje "This statement will create a new model named qwiklabs-gcp-03-xxxxxxxx:taxi.taxifare_model", que indica que el modelo se entrenó correctamente.

  1. Revisa tu conjunto de datos de taxis y confirma que ahora aparece taxifare_model.

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

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si la completaste correctamente, se te otorgará una puntuación de evaluación.

Crear un modelo taxifare

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

Selecciona tus criterios de rendimiento

Para los modelos de regresión lineal, debes usar una métrica de pérdidas como raíz cuadrada del error cuadrático medio (RMSE). Debes continuar entrenando y mejorando el modelo hasta que tenga la RMSE más baja.

En BQML, mean_squared_error es un campo para consultas cuando evalúas tu modelo entrenado de AA. Agrega un SQRT() para obtener el RMSE.

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

  1. Copia el siguiente código, pégalo en el EDITOR de consultas y haz clic en Ejecutar:
#standardSQL SELECT SQRT(mean_squared_error) AS rmse FROM ML.EVALUATE(MODEL taxi.taxifare_model, ( WITH params AS ( SELECT 1 AS TRAIN, 2 AS EVAL ), daynames AS (SELECT ['Sun', 'Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat'] AS daysofweek), taxitrips AS ( SELECT (tolls_amount + fare_amount) AS total_fare, daysofweek[ORDINAL(EXTRACT(DAYOFWEEK FROM pickup_datetime))] AS dayofweek, EXTRACT(HOUR FROM pickup_datetime) AS hourofday, pickup_longitude AS pickuplon, pickup_latitude AS pickuplat, dropoff_longitude AS dropofflon, dropoff_latitude AS dropofflat, passenger_count AS passengers FROM `nyc-tlc.yellow.trips`, daynames, params WHERE trip_distance > 0 AND fare_amount > 0 AND MOD(ABS(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING))),1000) = params.EVAL ) SELECT * FROM taxitrips ))

Ahora estás evaluando el modelo con un conjunto distinto de viajes de taxi con el filtro params.EVAL.

  1. Después de que el modelo se ejecute, revisa los resultados (el valor de la RMSE de tu modelo variará ligeramente).

Fila

RMSE

1

9.477056435999074

Luego de evaluar tu modelo, obtiene un RMSE de 9.47. Como calculamos la raíz del error cuadrático medio (RMSE), el error de 9.47 se puede evaluar en las mismas unidades que total_fare, de manera que es +-USD 9.47.

Conocer si esta métrica de pérdidas es aceptable o no para llevar tu modelo a producción depende totalmente de tus criterios de comparativas, que se configuran antes del comienzo del entrenamiento de modelos. Las comparativas implican establecer un nivel mínimo de exactitud y rendimiento aceptable.

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si la completaste correctamente, se te otorgará una puntuación de evaluación.

Evaluar el rendimiento del modelo de clasificación

Tarea 7: Predice el importe de las tarifas de taxis

A continuación, escribe una consulta para usar tu nuevo modelo y hacer predicciones con él.

  • Copia el siguiente código, pégalo en el EDITOR de consultas y haz clic en Ejecutar:
#standardSQL SELECT * FROM ml.PREDICT(MODEL `taxi.taxifare_model`, ( WITH params AS ( SELECT 1 AS TRAIN, 2 AS EVAL ), daynames AS (SELECT ['Sun', 'Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat'] AS daysofweek), taxitrips AS ( SELECT (tolls_amount + fare_amount) AS total_fare, daysofweek[ORDINAL(EXTRACT(DAYOFWEEK FROM pickup_datetime))] AS dayofweek, EXTRACT(HOUR FROM pickup_datetime) AS hourofday, pickup_longitude AS pickuplon, pickup_latitude AS pickuplat, dropoff_longitude AS dropofflon, dropoff_latitude AS dropofflat, passenger_count AS passengers FROM `nyc-tlc.yellow.trips`, daynames, params WHERE trip_distance > 0 AND fare_amount > 0 AND MOD(ABS(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING))),1000) = params.EVAL ) SELECT * FROM taxitrips ));

Ahora verás las predicciones del modelo para tarifas de taxi junto con las tarifas reales y otros atributos de esos viajes. Tus resultados deberían ser similares a los que se muestran a continuación:

Predicciones de taxis

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si la completaste correctamente, se te otorgará una puntuación de evaluación.

Predecir el importe de las tarifas de taxis

Tarea 8: Mejora el modelo con la ingeniería de atributos

La compilación de modelos de aprendizaje automático es un proceso iterativo. Una vez evaluado el rendimiento de nuestro modelo inicial, a menudo volvemos atrás y reducimos nuestros atributos y filas para ver si podemos conseguir un modelo todavía mejor.

Filtra el conjunto de datos de entrenamiento

Ahora, visualiza las estadísticas comunes para las tarifas de taxis.

  1. Copia el siguiente código, pégalo en el EDITOR de consultas y haz clic en Ejecutar:
SELECT COUNT(fare_amount) AS num_fares, MIN(fare_amount) AS low_fare, MAX(fare_amount) AS high_fare, AVG(fare_amount) AS avg_fare, STDDEV(fare_amount) AS stddev FROM `nyc-tlc.yellow.trips` # 1,108,779,463 fares

Deberías obtener un resultado similar al siguiente:

Resultados de la consulta

Como puedes ver, hay algunos valores atípicos extraños en nuestro conjunto de datos (tarifas negativas o superiores a $50,000). Aplica algo de nuestra experiencia en el tema para evitar que el modelo aprenda de valores atípicos extraños.

Limita los datos solo a tarifas que se encuentren entre $$6 y $$200.

  1. Copia el siguiente código, pégalo en el EDITOR de consultas y haz clic en Ejecutar:
SELECT COUNT(fare_amount) AS num_fares, MIN(fare_amount) AS low_fare, MAX(fare_amount) AS high_fare, AVG(fare_amount) AS avg_fare, STDDEV(fare_amount) AS stddev FROM `nyc-tlc.yellow.trips` WHERE trip_distance > 0 AND fare_amount BETWEEN 6 and 200 # 843,834,902 fares

Deberías obtener un resultado similar al siguiente:

Resultados de la consulta

Eso está un poco mejor. Mientras haces esto, limita la distancia recorrida de modo que te enfoques totalmente en la ciudad de Nueva York.

  1. Copia el siguiente código, pégalo en el EDITOR de consultas y haz clic en Ejecutar:
SELECT COUNT(fare_amount) AS num_fares, MIN(fare_amount) AS low_fare, MAX(fare_amount) AS high_fare, AVG(fare_amount) AS avg_fare, STDDEV(fare_amount) AS stddev FROM `nyc-tlc.yellow.trips` WHERE trip_distance > 0 AND fare_amount BETWEEN 6 and 200 AND pickup_longitude > -75 #limiting of the distance the taxis travel out AND pickup_longitude < -73 AND dropoff_longitude > -75 AND dropoff_longitude < -73 AND pickup_latitude > 40 AND pickup_latitude < 42 AND dropoff_latitude > 40 AND dropoff_latitude < 42 # 827,365,869 fares

Deberías obtener un resultado similar al siguiente:

Resultados de la consulta

Todavía tienes un conjunto de datos de entrenamiento grande de más de 800 millones de viajes a partir del que aprenderá nuestro modelo nuevo. Vuelve a entrenar el modelo con estas nuevas limitaciones y observa su rendimiento.

Vuelve a entrenar el modelo

Asigna el nombre taxi.taxifare_model_2 al nuevo modelo y vuelve a entrenar el modelo de regresión lineal para predecir la tarifa total. Notarás que también agregaste algunos atributos calculados para la distancia euclidiana (línea recta) entre las ubicaciones para recoger y dejar pasajeros.

  • Copia el siguiente código, pégalo en el EDITOR de consultas y haz clic en Ejecutar:
CREATE OR REPLACE MODEL taxi.taxifare_model_2 OPTIONS (model_type='linear_reg', labels=['total_fare']) AS WITH params AS ( SELECT 1 AS TRAIN, 2 AS EVAL ), daynames AS (SELECT ['Sun', 'Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat'] AS daysofweek), taxitrips AS ( SELECT (tolls_amount + fare_amount) AS total_fare, daysofweek[ORDINAL(EXTRACT(DAYOFWEEK FROM pickup_datetime))] AS dayofweek, EXTRACT(HOUR FROM pickup_datetime) AS hourofday, SQRT(POW((pickup_longitude - dropoff_longitude),2) + POW(( pickup_latitude - dropoff_latitude), 2)) as dist, #Euclidean distance between pickup and drop off SQRT(POW((pickup_longitude - dropoff_longitude),2)) as longitude, #Euclidean distance between pickup and drop off in longitude SQRT(POW((pickup_latitude - dropoff_latitude), 2)) as latitude, #Euclidean distance between pickup and drop off in latitude passenger_count AS passengers FROM `nyc-tlc.yellow.trips`, daynames, params WHERE trip_distance > 0 AND fare_amount BETWEEN 6 and 200 AND pickup_longitude > -75 #limiting of the distance the taxis travel out AND pickup_longitude < -73 AND dropoff_longitude > -75 AND dropoff_longitude < -73 AND pickup_latitude > 40 AND pickup_latitude < 42 AND dropoff_latitude > 40 AND dropoff_latitude < 42 AND MOD(ABS(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING))),1000) = params.TRAIN ) SELECT * FROM taxitrips

Volver a entrenar el modelo puede llevar algunos minutos. Puedes ir al siguiente paso cuando recibas este mensaje en la consola:

Sentencia para el nuevo modelo

Evalúa el modelo nuevo

Ahora que el modelo de regresión lineal se ha optimizado, evalúa el conjunto de datos con él y observa su rendimiento.

  • Copia el siguiente código, pégalo en el EDITOR de consultas y haz clic en Ejecutar:
SELECT SQRT(mean_squared_error) AS rmse FROM ML.EVALUATE(MODEL taxi.taxifare_model_2, ( WITH params AS ( SELECT 1 AS TRAIN, 2 AS EVAL ), daynames AS (SELECT ['Sun', 'Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat'] AS daysofweek), taxitrips AS ( SELECT (tolls_amount + fare_amount) AS total_fare, daysofweek[ORDINAL(EXTRACT(DAYOFWEEK FROM pickup_datetime))] AS dayofweek, EXTRACT(HOUR FROM pickup_datetime) AS hourofday, SQRT(POW((pickup_longitude - dropoff_longitude),2) + POW(( pickup_latitude - dropoff_latitude), 2)) as dist, #Euclidean distance between pickup and drop off SQRT(POW((pickup_longitude - dropoff_longitude),2)) as longitude, #Euclidean distance between pickup and drop off in longitude SQRT(POW((pickup_latitude - dropoff_latitude), 2)) as latitude, #Euclidean distance between pickup and drop off in latitude passenger_count AS passengers FROM `nyc-tlc.yellow.trips`, daynames, params WHERE trip_distance > 0 AND fare_amount BETWEEN 6 and 200 AND pickup_longitude > -75 #limiting of the distance the taxis travel out AND pickup_longitude < -73 AND dropoff_longitude > -75 AND dropoff_longitude < -73 AND pickup_latitude > 40 AND pickup_latitude < 42 AND dropoff_latitude > 40 AND dropoff_latitude < 42 AND MOD(ABS(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING))),1000) = params.EVAL ) SELECT * FROM taxitrips ))

Deberías obtener un resultado similar al siguiente:

Resultados de la consulta

Como puedes ver, bajamos la RMSE a +-$$5.12. Esto es mucho mejor que el valor +-$$9.47 de tu primer modelo.

Dado que la RMSE define la desviación estándar de los errores de predicción, vemos que la regresión lineal que se volvió a entrenar hizo que nuestro modelo fuera mucho más preciso.

Tarea 9: Pon a prueba tus conocimientos

A continuación, se presentan algunas preguntas de opción múltiple para reforzar tus conocimientos de los conceptos de este lab. Trata de responderlas lo mejor posible.

Tarea 10: Otros conjuntos de datos para explorar

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

  1. Para abrir el conjunto de datos bigquery-public-data, haz clic en +Agregar > Destaca un proyecto por nombre > Ingresa el nombre del proyecto y, luego, escribe el nombre bigquery-public-data.

  2. Haz clic en Destacar.

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

¡Felicitaciones!

Compilaste correctamente un modelo de AA en BigQuery para prever la tarifa de taxis de la ciudad de Nueva York.

Finaliza la Quest

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

Próximos pasos y más información

Capacitación y certificación de Google Cloud

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

Última actualización del manual: 24 de agosto de 2023

Prueba más reciente del lab: 24 de agosto de 2023

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