GSP246
Ringkasan
BigQuery adalah database
analisis berbiaya rendah dan NoOps yang dikelola sepenuhnya oleh Google.
Dengan BigQuery, Anda dapat melakukan kueri pada data berukuran terabyte tanpa
harus memiliki administrator database atau infrastruktur apa pun untuk
mengelolanya.
BigQuery ML
memberi analis data kemampuan untuk membuat, melatih, mengevaluasi, dan
memprediksi model machine learning dengan coding minimal.
Di lab ini, Anda akan menangani jutaan perjalanan taksi kuning New York City
yang tersedia di Set Data Publik BigQuery. Anda akan menggunakan data ini
untuk membuat model machine learning di dalam BigQuery untuk memprediksi tarif
perjalanan taksi berdasarkan input model Anda dan mengevaluasi performa model
Anda serta membuat prediksi dengannya.
Yang akan Anda pelajari
Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:
- Menggunakan BigQuery untuk menemukan set data publik
- Melakukan kueri dan mempelajari set data taksi publik
-
Membuat set data pelatihan dan evaluasi yang akan digunakan untuk melakukan
prediksi batch
- Membuat model perkiraan (regresi linear) di BigQuery ML
- Mengevaluasi performa model machine learning Anda
Penyiapan dan persyaratan
Sebelum mengklik tombol Start Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.
Cara memulai lab dan login ke Konsol Google Cloud
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran.
Di sebelah kanan terdapat panel Lab setup and access yang berisi hal-hal berikut:
- Tombol Open Google Cloud console
- Kredensial sementara (nama pengguna dan sandi) yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
Perhatikan bahwa timer lab terletak di dekat bagian atas halaman, yang menampilkan waktu yang tersisa.
-
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
-
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}}
Anda juga dapat menemukan Username di panel Lab setup and access.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab setup and access.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda.
Catatan: Penggunaan akun Google Cloud sendiri untuk lab ini mungkin dikenai biaya tambahan.
-
Klik untuk melanjutkan ke halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan daftar uji coba gratis.
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search.
Membuka konsol BigQuery
- Di Konsol Google Cloud, pilih Navigation menu > BigQuery.
Kotak pesan Welcome to BigQuery in the Cloud Console akan terbuka. Kotak pesan ini menyediakan link ke panduan memulai dan catatan rilis.
- Klik Done.
Konsol BigQuery terbuka.
Tugas 1. Menjelajahi data taksi NYC
Pertanyaan: Berapa banyak perjalanan yang dilakukan taksi
kuning tiap bulan pada tahun 2015?
-
Salin dan tempel kode SQL berikut ke dalam EDITOR kueri:
#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
- Kemudian klik Run.
Anda akan menerima hasil berikut:
Seperti terlihat, tiap bulan pada tahun 2015 terdapat lebih dari 10 juta
perjalanan taksi NYC. Jumlah ini tidak sedikit!
Menguji tugas yang sudah selesai
Klik Check my progress untuk memverifikasi tugas yang telah
dijalankan. Jika berhasil menyelesaikan tugas, Anda akan diberi skor
penilaian.
Menghitung perjalanan yang dilakukan taksi kuning tiap bulan pada tahun 2015
Pertanyaan: Berapa kecepatan rata-rata perjalanan taksi
kuning pada tahun 2015?
-
Ganti kueri sebelumnya dengan kueri berikut, lalu klik Run:
#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
Anda akan menerima hasil berikut:
Pada siang hari, kecepatan rata-rata taksi sekitar 17-19 km per jam, tetapi
pada pukul 05.00 kecepatan rata-rata meningkat hampir dua kali lipat menjadi
33 km per jam. Secara naluriah, hal ini masuk akal karena kemungkinan lalu
lintas di jalan akan lebih sepi pada pukul 05.00.
Menguji tugas yang sudah selesai
Klik Check my progress untuk memverifikasi tugas yang telah
dijalankan. Jika berhasil menyelesaikan tugas, Anda akan diberi skor
penilaian.
Menghitung kecepatan rata-rata perjalanan taksi kuning pada tahun 2015
Tugas 2. Mengidentifikasi tujuan
Sekarang Anda akan membuat model Machine Learning di BigQuery untuk
memprediksi harga perjalanan taksi di New York City berdasarkan set data
historis perjalanan dan data perjalanan. Memprediksi tarif sebelum perjalanan
dapat sangat berguna untuk perencanaan perjalanan, baik bagi penumpang maupun
perusahaan taksi.
Tugas 3. Memilih fitur dan membuat set data pelatihan
Set data Taksi Kuning New York City adalah
set data publik
yang disediakan oleh pemerintah kota dan telah dimuat ke BigQuery untuk
kebutuhan Anda.
Jelajahi
daftar lengkap kolom, kemudian
pratinjau set data
untuk menemukan fitur yang berguna yang akan membantu model machine learning
memahami hubungan antara data terkait perjalanan taksi secara historis dan
harga tarifnya.
Tim Anda memutuskan untuk menguji apakah kolom di bawah ini adalah input yang
baik untuk model perkiraan tarif Anda:
- Jumlah Tol
- Jumlah Tarif
- Jam
- Alamat penjemputan
- Alamat pengantaran
- Jumlah penumpang
- Ganti kueri dengan yang berikut:
#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
Perhatikan beberapa hal tentang kueri ini:
-
Bagian utama kueri ada di bagian bawah (
SELECT * from taxitrips).
-
taxitrips melakukan sebagian besar ekstraksi untuk set data
NYC, dengan SELECT berisi fitur dan label pelatihan Anda.
-
WHERE menghapus data yang tidak ingin Anda gunakan untuk
pelatihan.
-
WHERE juga mencakup klausa pengambilan sampel untuk mengambil
hanya 1/1000 data.
-
Tentukan variabel bernama
TRAIN sehingga Anda dapat dengan
cepat membuat set EVAL independen.
-
Setelah Anda lebih memahami tujuan kueri ini, klik Run.
Anda akan melihat hasil seperti ini:

Apa nama labelnya (jawaban yang benar)?
total_fare adalah labelnya (yang akan Anda prediksi). Anda
membuat kolom ini dari tolls_amount dan fare_amount,
sehingga Anda dapat mengabaikan tip pelanggan sebagai bagian dari model karena
bersifat diskresi.
Menguji tugas yang sudah selesai
Klik Check my progress untuk memverifikasi tugas yang telah
dijalankan. Jika berhasil menyelesaikan tugas, Anda akan diberi skor
penilaian.
Menguji apakah kolom termasuk input yang baik untuk model perkiraan tarif Anda
Tugas 4. Membuat set data BigQuery untuk menyimpan model
Di bagian ini, Anda akan membuat set data BigQuery baru yang akan menyimpan
model ML Anda.
-
Di panel Explorer sebelah kiri, klik ikon
View actions di sebelah Project ID, lalu klik
Create dataset.
-
Dalam dialog Create Dataset, masukkan yang berikut:
- Untuk Dataset ID, ketikkan taxi.
-
Pilih us(multiple regions in United States) sebagai
Location type.
- Biarkan semua nilai lainnya dalam setelan default.
- Lalu klik Create dataset.
Menguji tugas yang sudah selesai
Klik Check my progress untuk memverifikasi tugas yang telah
dijalankan. Jika berhasil menyelesaikan tugas, Anda akan diberi skor
penilaian.
Membuat set data BigQuery untuk menyimpan model
Tugas 5. Memilih jenis model BigQuery ML dan menentukan opsi
Setelah memilih fitur awal, sekarang Anda siap untuk membuat model ML pertama
Anda di BigQuery.
Ada beberapa jenis model yang dapat dipilih:
-
Memperkirakan nilai numerik seperti penjualan bulan depan dengan
Regresi Linear (linear_reg).
-
Klasifikasi Biner atau Multikelas seperti email spam atau bukan spam
menggunakan Regresi Logistik (logistic_reg).
-
Pengelompokan k-Means ketika Anda menginginkan pembelajaran tanpa
pengawasan untuk eksplorasi (kmeans).
Catatan: Ada banyak jenis model tambahan yang digunakan dalam Machine Learning (seperti Jaringan Neural dan pohon keputusan) dan tersedia dengan library seperti TensorFlow. Saat ini, BQML mendukung ketiga hal yang tercantum di atas. Ikuti BQML roadmap untuk mengetahui informasi lebih lanjut.
- Masukkan kueri berikut untuk membuat model dan menentukan opsi model.
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
-
Selanjutnya, klik Run untuk melatih model Anda.
-
Tunggu sampai model tersebut selesai dilatih (5-10 menit).
Setelah model dilatih, Anda akan melihat pesan yang berbunyi "This statement
will create a new model named qwiklabs-gcp-03-xxxxxxxx:taxi.taxifare_model."
yang menunjukkan bahwa model Anda telah berhasil dilatih.
-
Lihat ke dalam set data taksi Anda dan konfirmasi bahwa
taxifare_model sudah muncul.
Selanjutnya, Anda akan mengevaluasi performa model terhadap data evaluasi baru
yang belum pernah dilihat sebelumnya.
Menguji tugas yang sudah selesai
Klik Check my progress untuk memverifikasi tugas yang telah
dijalankan. Jika berhasil menyelesaikan tugas, Anda akan diberi skor
penilaian.
Membuat model tarif taksi
Tugas 6. Mengevaluasi performa model klasifikasi
Pilih kriteria performa Anda
Untuk model regresi linear, gunakan metrik kerugian seperti
Root Mean Square Error (RMSE). Tetaplah melatih dan meningkatkan kualitas model hingga model memiliki GARK
terendah.
Di BQML, mean_squared_error adalah sebuah bidang yang dapat
dikueri ketika mengevaluasi model ML terlatih. Tambahkan kode
SQRT() untuk mendapatkan GARK.
Setelah pelatihan selesai, Anda dapat mengevaluasi seberapa baik performa
model dengan kueri ini menggunakan ML.EVALUATE.
-
Salin dan tempel kode berikut ke EDITOR kueri, lalu klik
Run:
#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
))
Anda sekarang mengevaluasi model terhadap serangkaian perjalanan taksi yang
berbeda dengan filter params.EVAL.
-
Setelah model dijalankan, tinjau hasil model Anda (nilai GARK model Anda
akan sedikit berbeda).
|
Baris
|
gark
|
1 |
9,477056435999074 |
Setelah mengevaluasi model, Anda akan mendapatkan
GARK sebesar 9,47. Karena kita mengambil Akar dari Rataan
Kuadrat Galat (GARK), error 9,47 dapat dievaluasi dalam satuan yang sama
dengan total_fare sehingga menjadi +-$9,47.
Untuk mengetahui apakah metrik kerugian ini dapat diterima atau tidak untuk
memproduksi model Anda sepenuhnya, Anda harus melihat kriteria tolok ukurnya,
yang ditetapkan sebelum pelatihan model dimulai. Menentukan tolok ukur adalah
menetapkan tingkat minimum performa dan akurasi model yang dapat diterima.
Menguji tugas yang sudah selesai
Klik Check my progress untuk memverifikasi tugas yang telah
dijalankan. Jika berhasil menyelesaikan tugas, Anda akan diberi skor
penilaian.
Mengevaluasi performa model klasifikasi
Tugas 7. Memprediksi jumlah tarif taksi
Selanjutnya, tulis kueri untuk menggunakan model baru Anda dalam membuat
prediksi.
-
Salin dan tempel kode berikut ke EDITOR kueri, lalu klik
Run:
#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
));
Sekarang Anda akan melihat prediksi model untuk tarif taksi beserta tarif
aktual dan fitur lainnya untuk perjalanan tersebut. Hasil Anda akan terlihat
seperti di bawah ini:

Menguji tugas yang sudah selesai
Klik Check my progress untuk memverifikasi tugas yang telah
dijalankan. Jika berhasil menyelesaikan tugas, Anda akan diberi skor
penilaian.
Memprediksi jumlah tarif taksi
Tugas 8. Meningkatkan model dengan Rekayasa Fitur
Membangun model Machine Learning adalah proses berulang. Setelah mengevaluasi
performa model awal, kita sering kali kembali dan memangkas fitur dan baris
untuk melihat apakah kita bisa mendapatkan model yang lebih baik lagi.
Memfilter set data pelatihan
Sekarang lihat statistik umum untuk tarif taksi.
-
Salin dan tempel kode berikut ke EDITOR kueri, lalu klik
Run:
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
Anda akan melihat output seperti ini:

Seperti yang Anda lihat, ada beberapa anomali aneh dalam set data kita (tarif
negatif atau tarif di atas $50.000). Terapkan keahlian kita dalam bidang ini
untuk membantu model menghindari pembelajaran pada anomali aneh.
Batasi data hanya pada tarif antara $$6 dan $$200.
-
Salin dan tempel kode berikut ke EDITOR kueri, lalu klik
Run:
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
Anda akan melihat output seperti ini:

Hasil ini sedikit lebih baik. Sambil mengerjakan hal ini, batasi juga jarak
yang ditempuh sehingga Anda benar-benar berfokus pada New York City.
-
Salin dan tempel kode berikut ke EDITOR kueri, lalu klik
Run:
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
Anda akan melihat output seperti ini:

Anda masih memiliki set data pelatihan besar yang berisi lebih dari 800 juta
perjalanan untuk dipelajari model baru kita. Latih kembali model dengan
batasan baru ini, lalu lihat seberapa baik performanya.
Melatih ulang model
Panggil model baru taxi.taxifare_model_2 dan latih kembali model
regresi linear ini untuk memprediksi total tarif. Anda akan melihat bahwa Anda
juga telah menambahkan beberapa fitur terhitung untuk
jarak Euclidean
(garis lurus) antara penjemputan dan pengantaran.
-
Salin dan tempel kode berikut ke EDITOR kueri, lalu klik
Run:
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
Mungkin diperlukan waktu beberapa menit untuk melatih ulang model tersebut.
Anda dapat melanjutkan ke langkah berikutnya ketika menerima pesan berikut di
Konsol:

Mengevaluasi model baru
Setelah model regresi linear dioptimalkan, evaluasi set data dengannya dan
lihat bagaimana performanya.
-
Salin dan tempel kode berikut ke EDITOR kueri, lalu klik
Run:
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
))
Anda akan melihat output seperti ini:

Seperti yang Anda lihat, GARK turun menjadi: +-$$5,12 yang jauh lebih baik
daripada +-$$9,47 untuk model pertama Anda.
Karena GARK menentukan deviasi standar kesalahan prediksi, terlihat bahwa
regresi linear yang dilatih ulang membuat model kita jadi jauh lebih akurat.
Tugas 9. Uji pemahaman Anda
Di bawah ini terdapat pertanyaan pilihan ganda untuk memperkuat pemahaman Anda
tentang konsep lab ini. Jawab pertanyaan tersebut sebaik mungkin.
Tugas 10. Set data lain untuk dipelajari
Anda dapat menggunakan project bigquery-public-data jika
ingin mempelajari pemodelan pada set data lain seperti memperkirakan tarif
perjalanan taksi Chicago.
-
Untuk membuka set data bigquery-public-data, buka panel
Explorer, lalu klik +Add data >
Star a project by name >
Enter Project Name, lalu tulis nama
bigquery-public-data.
-
Klik Star.
Project bigquery-public-data tercantum di bagian Explorer.
Selamat!
Anda telah berhasil membuat model machine learning di BigQuery untuk
memperkirakan tarif taksi untuk taksi New York City.
Langkah berikutnya/Pelajari lebih lanjut
Sertifikasi dan pelatihan Google Cloud
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui pada 07 Januari 2026
Lab Terakhir Diuji pada 07 Januari 2026
Hak cipta 2026 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.