arrow_back

Memprediksi Tarif Taksi dengan Model Perkiraan BigQuery ML

Login Gabung
Uji dan bagikan pengetahuan Anda kepada komunitas kami.
done
Dapatkan akses ke lebih dari 700 lab praktik, badge keahlian, dan kursus

Memprediksi Tarif Taksi dengan Model Perkiraan BigQuery ML

Lab 1 jam universal_currency_alt 1 Kredit show_chart Menengah
info Lab ini mungkin menggabungkan alat AI untuk mendukung pembelajaran Anda.
Uji dan bagikan pengetahuan Anda kepada komunitas kami.
done
Dapatkan akses ke lebih dari 700 lab praktik, badge keahlian, dan kursus

GSP246

Lab Mandiri Google Cloud

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 Mulai 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 praktik ini dapat Anda gunakan untuk melakukan sendiri 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 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: Jika Anda sudah memiliki project atau akun pribadi Google Cloud, jangan menggunakannya untuk lab ini agar terhindar dari tagihan ekstra pada akun Anda.

Cara memulai lab dan login ke Google Cloud Console

  1. Klik tombol Start Lab. Jika Anda perlu membayar lab, jendela pop-up akan terbuka untuk memilih metode pembayaran. Di sebelah kiri adalah panel Lab Details dengan info berikut:

    • Tombol Open Google Cloud console
    • Waktu tersisa
    • Kredensial sementara yang harus Anda gunakan untuk lab ini
    • Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
  2. 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.
  3. Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.

    {{{user_0.username | "Username"}}}

    Anda juga dapat menemukan Username di panel Lab Details.

  4. Klik Next.

  5. Salin Password di bawah dan tempel ke dialog Welcome.

    {{{user_0.password | "Password"}}}

    Anda juga dapat menemukan Password di panel Lab Details.

  6. Klik Next.

    Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda. Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
  7. Klik halaman berikutnya:

    • Setujui persyaratan dan ketentuan.
    • Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
    • Jangan mendaftar uji coba gratis.

Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.

Catatan: Untuk melihat menu dengan daftar produk dan layanan Google Cloud, klik Navigation menu di kiri atas. Ikon Navigation menu

Membuka konsol BigQuery

  1. Di Google Cloud Console, 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.

  1. Klik Done.

Konsol BigQuery terbuka.

Tugas 1. Menjelajahi data taksi NYC

Pertanyaan: Berapa banyak perjalanan yang dilakukan taksi kuning tiap bulan pada tahun 2015?

  1. 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
  1. Kemudian klik Run.

Anda akan menerima hasil berikut:

Beberapa baris data di bawah dua judul kolom: bulan dan perjalanan

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:

Beberapa baris data di bawah dua judul kolom: jam dan kecepatan

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
  1. 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.
  1. Setelah Anda lebih memahami tujuan kueri ini, klik Run.

Anda akan melihat hasil seperti ini:

Tabel hasil kueri

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.

  1. Di panel Explorer sebelah kiri, klik ikon View actions di sebelah Project ID, lalu klik Create dataset.

  2. 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.
  1. 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.

  1. 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
  1. Selanjutnya, klik Run untuk melatih model Anda.

  2. 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.

  1. 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.

  1. 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.

  1. 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:

Prediksi taksi

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.

  1. 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:

Hasil kueri

Seperti yang Anda lihat, ada beberapa pencilan 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 pencilan yang aneh.

Batasi data hanya pada tarif antara $$6 dan $$200.

  1. 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 kueri

Hasil ini sedikit lebih baik. Sambil mengerjakan hal ini, batasi juga jarak yang ditempuh sehingga Anda benar-benar berfokus pada New York City.

  1. 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:

Hasil kueri

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:

Pernyataan model baru

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:

Hasil kueri

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.

  1. Untuk membuka set data bigquery-public-data, klik +Add > Star a project by name > Enter Project Name, lalu tulis nama bigquery-public-data.

  2. 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 Februari 2024

Lab terakhir diuji pada 24 Agustus 2023

Hak cipta 2024 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.

Konten ini tidak tersedia untuk saat ini

Kami akan memberi tahu Anda melalui email saat konten tersedia

Bagus!

Kami akan menghubungi Anda melalui email saat konten tersedia