ML BigQuery untuk Deteksi Penipuan dalam transaksi kartu kredit menggunakan konsol

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.

  1. Fitur V1, V2, ... V28 adalah komponen utama yang diperoleh dengan PCA, satu-satunya fitur yang belum ditransformasi dengan PCA adalah ‘Time' dan ‘Amount’.
  2. Fitur ‘Time' berisi detik yang berlalu antara setiap transaksi dan transaksi pertama dalam {i>dataset<i}.
  3. Fitur 'Jumlah' adalah Jumlah transaksi. Fitur ini dapat digunakan sebagai contoh pembelajaran sensasional yang bergantung pada biaya.
  4. 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.

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

c670e136ecd58236.png

Hasil

Harus berada di panel Query Results dan terlihat seperti ini. Datanya mungkin berbeda

be082fb135879158.png

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

  1. Pada panel Explorer - Sisi kiri pilih proyek yang sedang Anda kerjakan , klik tiga titik di sampingnya

7618699754e066bd.png

  1. Klik Create Dataset di kanan atas

17851cc9db05dc1.pngS

  1. Masukkan detail untuk nama set data, retensi, lokasi, dll., Gunakan setelan ini

b8b6731408f61d57.png

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

3385a54d3907443e.png

  1. Model akan membuat panel Penjelajah
  2. Panel Query Results akan memiliki durasi yang diperlukan untuk memproses ML SQL yang mirip dengan pernyataan SQL mana pun
  3. 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

b350f1b94835f2d1.png

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

c3c80286082dc336.png

Untuk mengetahui lebih lanjut hasilnya. Cari dokumen ML.Evaluate di sini

Presisi dan Perolehan

Kurva KOP dan ABK

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)

676fc8accdab2f6c.pngS

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.

e7d18fadd2b781be.png

Klik Delete Dataset di sudut kanan atas

b47bc819869bed6c.png

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

Dokumen referensi