1. Pengantar
Di lab ini, Anda akan menggunakan BigQuery untuk melatih dan menyajikan model dengan data tabel menggunakan konsol. Penawaran ini adalah tambahan favorit untuk inferensi dan pelatihan model berbasis SQL. BigQuery ML memungkinkan pengguna membuat dan menjalankan model machine learning di BigQuery dengan menggunakan kueri SQL. Tujuannya adalah untuk memperluas akses ke machine learning dengan memungkinkan praktisi SQL membangun model menggunakan alat yang sudah ada, dan meningkatkan kecepatan pengembangan dengan menghilangkan kebutuhan akan perpindahan data.
Yang akan Anda pelajari
- Menjelajahi data yang tersedia di BigQuery
- Buat model menggunakan SQL di BigQuery menggunakan konsol
- Mengevaluasi hasil model yang dibuat
- Memprediksi transaksi apakah transaksinya bersifat menipu atau tidak dengan model yang dibuat
2. Tentang data
Set data berisi transaksi yang dilakukan dengan kartu kredit pada September 2013 oleh pemegang kartu di Eropa. {i>Dataset<i} ini menyajikan transaksi yang terjadi dalam dua hari, di mana kami memiliki 492 penipuan dari 284.807 transaksi. Jumlahnya sangat tidak seimbang, kelas positif (penipuan) menyumbang 0,172% dari semua transaksi.
Kode ini hanya berisi variabel input numerik yang merupakan hasil dari transformasi PCA. Sayangnya, karena masalah kerahasiaan, kami tidak dapat memberikan fitur asli dan informasi latar belakang selengkapnya tentang data tersebut.
- Fitur V1, V2, ... V28 adalah komponen utama yang diperoleh dengan PCA, satu-satunya fitur yang belum ditransformasi dengan PCA adalah ‘Time' dan ‘Amount’.
- Fitur ‘Time' berisi detik yang berlalu antara setiap transaksi dan transaksi pertama dalam {i>dataset<i}.
- Fitur 'Jumlah' adalah Jumlah transaksi. Fitur ini dapat digunakan sebagai contoh pembelajaran sensasional yang bergantung pada biaya.
- Fitur 'Class' adalah variabel respons dan nilai yang diperlukan adalah 1 jika terjadi penipuan dan 0 jika sebaliknya.
Set data telah dikumpulkan dan dianalisis selama kolaborasi riset Worldline dan Machine Learning Group ( http://mlg.ulb.ac.be) ULB (Université Libre de Bruxelles) terkait penambangan big data dan deteksi penipuan.
Detail selengkapnya tentang project saat ini dan sebelumnya tentang topik terkait tersedia di https://www.researchgate.net/project/Fraud-detection-5 dan halaman project DefeatFraud
Kutipan:
Andrea Dal Pozzolo, Olivier Caelen, Reid A. Johnson dan Gianluca Bontempi. Mengkalibrasi Probabilitas dengan Undersampling untuk Klasifikasi yang Tidak Seimbang. Dalam Simposium tentang Kecerdasan Komputasi dan Data Mining (CIDM), IEEE, 2015
Dal Pozzolo, Andrea; Caelen, Olivier; Le Borgne, Yann-Ael; Waterschoot, Serge; Bontempi, Gianluca. Mempelajari pelajaran deteksi penipuan kartu kredit dari perspektif praktisi, Sistem pakar dengan pendaftaran,41,10,4915-4928,2014, Pergamon
Dal Pozzolo, Andrea; Boracchi, Giacomo; Caelen, Olivier; Alippi, Cesare; Bontempi, Gianluca. Deteksi penipuan kartu kredit: pemodelan realistis dan strategi pembelajaran baru, transaksi IEEE pada jaringan neural dan sistem pembelajaran,29,8,3784-3797,2018,IEEE
Dal Pozzolo, Andrea Adaptive Machine learning untuk deteksi penipuan kartu kredit Tesis ULB MLG PhD (diawasi oleh G. Bontempi)
Carcillo, Fabrizio; Dal Pozzolo, Andrea; Le Borgne, Yann-Aël; Caelen, Olivier; Mazzer, Yannis; Bontempi, Gianluca. Scarff: framework skalabel untuk streaming deteksi penipuan kartu kredit dengan Spark, Information fusion,41, 182-194,2018,Elsevier
Carcillo, Fabrizio; Le Borgne, Yann-Aël; Caelen, Olivier; Bontempi, Gianluca. Streaming strategi pembelajaran aktif untuk deteksi penipuan kartu kredit di kehidupan nyata: penilaian dan visualisasi, International Journal of Data Science and Analytics, 5,4,285-300,2018,Springer International Publishing
Bertrand Lebichot, Yann-Aël Le Borgne, Liyun He, Frederic Oblé, Gianluca Bontempi Deep-Learning Domain Adaptation Techniques for Credit Cards Fraud Detection, INNSBDDL 2019: Recent Advances in Big Data and Deep Learning, pp 78-88, 2019
Fabrizio Carcillo, Yann-Aël Le Borgne, Olivier Caelen, Frederic Oblé, Gianluca Bontempi Menggabungkan Pembelajaran yang Tidak Diawasi dan Pengawasan dalam Deteksi Penipuan Kartu Kredit Ilmu Informasi, 2019
3. Menyiapkan lingkungan Anda
Anda memerlukan project Google Cloud Platform dengan penagihan yang diaktifkan untuk menjalankan codelab ini. Untuk membuat project, ikuti petunjuk di sini.
- Mengaktifkan bigquery API
Buka BigQuery, lalu pilih Aktifkan jika belum diaktifkan. Anda akan memerlukan ini untuk membuat model.
4. Jelajahi data
Langkah 1: Buka BigQuery
Cari BigQuery di https://cloud.google.com/console
Langkah 2: Pelajari data menggunakan kueri
Di editor , ketik kueri SQL di bawah ini untuk meninjau data dalam {i>dataset<i} publik .
SELECT * FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` LIMIT 5
Langkah 3: Jalankan
Tekan perintah Run di atas untuk menjalankan kueri
Hasil
Harus berada di panel Query Results dan terlihat seperti ini. Datanya mungkin berbeda
Jelajahi kolom yang terlibat dan {i>outputnya<i}.
Anda dapat menjalankan beberapa kueri untuk memahami cara data didistribusikan. Beberapa contoh mungkin termasuk
SELECT count(*) FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection`
where Class=0;
SELECT count(*) FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection`
where Class=1;
5. Membuat set data output
Langkah 1: Membuat set data untuk pembuatan model
- Pada panel Explorer - Sisi kiri pilih proyek yang sedang Anda kerjakan , klik tiga titik di sampingnya
- Klik Create Dataset di kanan atas
- Masukkan detail untuk nama set data, retensi, lokasi, dll., Gunakan setelan ini
6. Buat Model Regresi Logistik
Langkah 1: Buat Pernyataan
Di jendela Query, ketik kueri di bawah ini untuk pembuatan model. Pahami opsi utama dengan pernyataan ini. Dijelaskan dalam link ini.
INPUT_LABEL_COLS menunjukkan label prediksi
AUTO_CLASS_WEIGHTS digunakan untuk {i>dataset<i} yang tidak seimbang
MODEL_TYPE akan menunjukkan algoritma yang digunakan dalam hal ini adalah Regresi Logistik
DATA_SPLIT_METHOD menunjukkan pemisahan antara data pelatihan dan pengujian
CREATE OR REPLACE MODEL advdata.ulb_fraud_detection
TRANSFORM(
* EXCEPT(Amount),
SAFE.LOG(Amount) AS log_amount
)
OPTIONS(
INPUT_LABEL_COLS=['class'],
AUTO_CLASS_WEIGHTS = TRUE,
DATA_SPLIT_METHOD='seq',
DATA_SPLIT_COL='Time',
MODEL_TYPE='logistic_reg'
) AS
SELECT
*
FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection`
Langkah 2: Jalankan
Jalankan pernyataan di atas. Proses ini memerlukan waktu beberapa menit
Perhatikan hal-hal penting setelah operasi selesai
- Model akan membuat panel Penjelajah
- Panel Query Results akan memiliki durasi yang diperlukan untuk memproses ML SQL yang mirip dengan pernyataan SQL mana pun
- Panel Query Results juga akan memiliki link Buka Model yang dapat Anda jelajahi
Langkah 3: Pelajari
Pelajari Model yang dibuat dengan mengklik Go to Model atau dari panel Explorer. Tab ini memberikan informasi tentang model yang dibuat, pelatihan, evaluasi, dll., Meninjau hasil
Kita akan mengeksplorasi ini lebih lanjut di bagian berikutnya
Untuk mengetahui Regresi Logistik lebih lanjut, lihat di sini
7. Mempelajari metrik evaluasi model
Pada langkah ini, kita akan melihat performa model.
Setelah tugas pelatihan model selesai, klik model yang baru saja Anda latih dan lihat tab Evaluate. Ada banyak metrik evaluasi di sini - kita akan berfokus hanya pada satu :roc_auc
SELECT * FROM ML.EVALUATE(MODEL advdata.ulb_fraud_detection)
Hasilnya akan terlihat seperti ini. {i>roc_auc <i}umumnya lebih penting pada {i>dataset <i}yang tidak seimbang
Untuk mengetahui lebih lanjut hasilnya. Cari dokumen ML.Evaluate di sini
8. Memprediksi kelas untuk waktu tertentu
Tekan Tulis kueri baru dan jalankan SQL di bawah. Waktu yang teridentifikasi di sini memiliki jumlah yang menipu. Kami mencoba mengevaluasi apakah prediksi berfungsi
SELECT Amount, predicted_class_probs, Class
FROM ML.PREDICT( MODEL advdata.ulb_fraud_detection,
(SELECT * FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` WHERE Time = 85285.0)
)
Output akan terlihat seperti ini (angka dapat bervariasi)
Dalam contoh ini, kita menampilkan jumlah dengan probabilitas label yang terkait. Kolom class di sini menunjukkan hasil yang sebenarnya.
Untuk mengetahui ML.PREDICT lebih lanjut. Lihat di sini
9. Pembersihan
Jika ingin membersihkan resource yang dibuat dengan lab ini, buka set data dari panel Explorer di sebelah kiri.
Klik Delete Dataset di sudut kanan atas
Masukkan kembali nama set data untuk mengonfirmasi detailnya. Untuk kasus kita, class ini adalah advdata
10. Selamat
Selamat, Anda telah berhasil membuat model pertama, yang dievaluasi, dan diprediksi menggunakan supervised machine learning.
Anda sekarang sudah mengetahui langkah-langkah utama yang diperlukan untuk membuat model regresi logistik.
Apa selanjutnya?
Lihat beberapa cara lain yang terlibat dalam memprediksi
- Mulai menggunakan BigQuery ML
- Perkiraan deret waktu dengan BigQuery ML
- Model deteksi penipuan menggunakan AutoML
- Deteksi penipuan menggunakan Tensorflow