Professional Documents
Culture Documents
Record of Experiments: Cloud Application Development Lab
Record of Experiments: Cloud Application Development Lab
Record of Experiments: Cloud Application Development Lab
Submitted By
Sarthak Goyal
Enrolment No.: R110218138
SAP ID: 500067706
Semester VI
B. Tech. (Computer Sc. and Engineering)
Specialization in CCVT
Submitted To
Ms. Shelly
Experiment 10:
Aim: Implement Machine Learning model/s on Cloud Platform.
Requirements: Google Cloud Platform(GCP), BigQuery
In this lab, we will create a machine learning model inside of BigQuery to predict the fare of
the cab ride given your model inputs. Then, we will evaluate the performance of our model
and make predictions with it.
Step 1: Go to https://cloud.google.com/ and login using credentials.
2
Roll No: R110218138 CAD LAB
SAP ID: 500067706
Step 3: To create a BigQuery dataset, select Project ID
3
Roll No: R110218138 CAD LAB
SAP ID: 500067706
Enter the following query to create a model and specify model options.
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 dayof
week,
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
)
4
Roll No: R110218138 CAD LAB
SAP ID: 500067706
SELECT *
FROM taxitrips
Wait for the model to train (5-10 minutes). Look inside your taxi dataset and confirm
taxifare_model now appears.
5
Roll No: R110218138 CAD LAB
SAP ID: 500067706
#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 dayof
week,
EXTRACT(HOUR FROM pickup_datetime) AS hourofday,
pickup_longitude AS pickuplon,
pickup_latitude AS pickuplat,
dropoff_longitude AS dropofflon,
dropoff_latitude AS dropofflat,
6
Roll No: R110218138 CAD LAB
SAP ID: 500067706
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
))
7
Roll No: R110218138 CAD LAB
SAP ID: 500067706
Click Run. The following output will be generated
#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 dayof
week,
EXTRACT(HOUR FROM pickup_datetime) AS hourofday,
pickup_longitude AS pickuplon,
8
Roll No: R110218138 CAD LAB
SAP ID: 500067706
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
));
9
Roll No: R110218138 CAD LAB
SAP ID: 500067706
Click Run. The following output will be generated.
END OF EXERCISE
10