1. Giriş
Bu laboratuvarda, konsol kullanarak tablo verileriyle bir modeli eğitmek ve sunmak için BigQuery'yi kullanacaksınız. Bu teklif, SQL tabanlı model sunma ve eğitime yönelik en sevilen eklentidir. BigQuery ML, kullanıcıların SQL sorgularını kullanarak BigQuery'de makine öğrenimi modelleri oluşturup yürütmesine olanak tanır. Amaç, SQL uzmanlarının mevcut araçlarını kullanarak modeller oluşturmasına olanak tanıyarak makine öğrenimini herkesin erişebileceği bir hale getirmek ve veri taşıma ihtiyacını ortadan kaldırarak geliştirme hızını artırmaktır.
Öğrenecekleriniz
- BigQuery'de bulunan verileri keşfedin
- Konsolu kullanarak BigQuery'de SQL ile model oluşturma
- Oluşturulan modelin sonuçlarını değerlendirme
- Oluşturulan modelle bir işlemin sahtekarlık olup olmadığını tahmin etme
2. Veriler hakkında
Veri kümeleri, Eylül 2013'te Avrupalı kart sahipleri tarafından kredi kartlarıyla yapılan işlemleri içerir. Bu veri kümesi, iki gün içinde gerçekleşen işlemleri sunar. 284.807 işlemden 492'si sahtekarlıktır. Son derece dengesizdir.Pozitif sınıf (dolandırıcılık) tüm işlemlerin% 0, 172'sini oluşturur.
Yalnızca PCA dönüşümünün sonucu olan sayısal giriş değişkenlerini içerir. Maalesef gizlilik sorunları nedeniyle orijinal özellikler ve veriler hakkında daha fazla arka plan bilgisi sağlayamıyoruz.
- Özellikler V1, V2, ... V28, PCA ile elde edilen temel bileşenlerdir. PCA ile dönüştürülmeyen tek özellikler "Zaman" ve "Tutar"dır.
- "Zaman" özelliği, her işlem ile veri kümesindeki ilk işlem arasında geçen saniyeleri içerir.
- Özellik "Tutar", işlem tutarıdır. Bu özellik, örneğe bağlı maliyete duyarlı öğrenme için kullanılabilir.
- "Class" özelliği, yanıt değişkenidir ve sahtekarlık durumunda 1, aksi takdirde 0 değerini alır.
Veri kümesi, Worldline ve ULB'nin ( Université Libre de Bruxelles) Büyük Veri Madenciliği ve Sahtekarlık Tespiti konusundaki Makine Öğrenimi Grubu (http://mlg.ulb.ac.be) tarafından yürütülen bir araştırma işbirliği sırasında toplanmış ve analiz edilmiştir.
İlgili konulardaki mevcut ve geçmiş projeler hakkında daha fazla bilgiyi https://www.researchgate.net/project/Fraud-detection-5 ve DefeatFraud projesinin sayfasında bulabilirsiniz.
Alıntı:
Andrea Dal Pozzolo, Olivier Caelen, Reid A. Johnson ve Gianluca Bontempi. Calibrating Probability with Undersampling for Unbalanced Classification. (Dengesiz Sınıflandırma İçin Alt Örnekleme ile Olasılığı Kalibre Etme) In Symposium on Computational Intelligence and Data Mining (CIDM), IEEE, 2015
Dal Pozzolo, Andrea; Caelen, Olivier; Le Borgne, Yann-Ael; Waterschoot, Serge; Bontempi, Gianluca. Learned lessons in credit card fraud detection from a practitioner perspective, Expert systems with applications,41,10,4915-4928,2014, Pergamon
Dal Pozzolo, Andrea; Boracchi, Giacomo; Caelen, Olivier; Alippi, Cesare; Bontempi, Gianluca. Credit card fraud detection: a realistic modeling and a novel learning strategy, IEEE transactions on neural networks and learning systems,29,8,3784-3797,2018,IEEE
Dal Pozzolo, Andrea Adaptive Machine learning for credit card fraud detection ULB MLG PhD thesis (supervised by G. Bontempi)
Carcillo, Fabrizio; Dal Pozzolo, Andrea; Le Borgne, Yann-Aël; Caelen, Olivier; Mazzer, Yannis; Bontempi, Gianluca. Scarff: a scalable framework for streaming credit card fraud detection with Spark, Information fusion,41, 182-194,2018,Elsevier
Carcillo, Fabrizio; Le Borgne, Yann-Aël; Caelen, Olivier; Bontempi, Gianluca. Gerçek hayatta kredi kartı sahtekarlığı tespiti için akışlı aktif öğrenme stratejileri: değerlendirme ve görselleştirme, 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 Combining Unsupervised and Supervised Learning in Credit Card Fraud Detection Information Sciences, 2019
3. Ortamınızı ayarlama
Bu codelab'i çalıştırmak için faturalandırmanın etkin olduğu bir Google Cloud Platform projesine ihtiyacınız vardır. Proje oluşturmak için buradaki talimatları uygulayın.
- BigQuery API'yi etkinleştirin.
BigQuery'ye gidin ve henüz etkinleştirilmemişse Etkinleştir'i seçin. Modelinizi oluşturmak için bu bilgiye ihtiyacınız vardır.
4. Verileri inceleyin
1. adım: BigQuery'ye gidin
https://cloud.google.com/console adresinde BigQuery'yi bulun.
2. adım: Sorgu kullanarak verileri keşfedin
Herkese açık veri kümesindeki verileri incelemek için düzenleyiciye aşağıdaki SQL sorgusunu yazın .
SELECT * FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` LIMIT 5
3. adım: Uygulama
Sorguyu yürütmek için yukarıdaki Çalıştır komutuna basın.

Sonuçlar
Sorgu Sonuçları panelinde yer almalı ve aşağıdaki gibi görünmelidir. Veriler değişiklik gösterebilir

İlgili sütunları ve çıkışı inceleyin.
Verilerin nasıl dağıtıldığını anlamak için birden fazla sorgu çalıştırabilirsiniz. Örnek olarak şunlar verilebilir:
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. Çıkış veri kümesi oluşturma
1. adım: Model oluşturma için veri kümesi oluşturun
- Gezgin panelinde (sol tarafta) üzerinde çalıştığınız projeyi seçin ve yanındaki üç noktayı tıklayın.

- Sağ üstteki Veri Kümesi Oluştur'u tıklayın.

- Veri kümesi adı, saklama süresi, konum vb. ayrıntılarını girin. Bu ayarları kullanma

6. Lojistik Regresyon Modeli Oluşturma
1. adım: Ekstre oluşturun
Sorgu penceresinde, model oluşturma için aşağıdaki sorguyu yazın. Bu ifadeyle anahtar seçeneklerini anlayın. Bu bağlantıda açıklanmıştır.
INPUT_LABEL_COLS, tahmin etiketini gösterir.
Dengesiz veri kümeleri için AUTO_CLASS_WEIGHTS kullanılır.
MODEL_TYPE, bu durumda kullanılan algoritmayı (Lojistik Regresyon) gösterir.
DATA_SPLIT_METHOD, eğitim ve test verileri arasındaki ayrımı gösterir.
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`
2. adım: Uygulama
Yukarıdaki ifadeyi çalıştırın. Bu işlemin tamamlanması birkaç dakika sürer.
Koşu tamamlandıktan sonra önemli noktaları fark etme

- Gezgin panelinde oluşturulan model yer alır.
- Sorgu Sonuçları panelinde, herhangi bir SQL ifadesine benzer şekilde makine öğrenimi SQL'inin işlenmesi için geçen süre gösterilir.
- Sorgu Sonuçları panelinde, keşfedebileceğiniz Modele Git bağlantısı da bulunur.
3. adım: Keşfedin
Modele Git'i veya Gezgin panelini tıklayarak oluşturulan modeli keşfedin. Sekmelerde oluşturulan model, eğitim, değerlendirme vb. hakkında bilgiler yer alır. Sonuçları inceleme

Bu konuyu sonraki bölümlerde daha ayrıntılı olarak ele alacağız.
Lojistik regresyon hakkında daha fazla bilgi için buraya bakın.
7. Model değerlendirme metriklerini keşfetme
Bu adımda modelimizin nasıl performans gösterdiğini göreceğiz.
Model eğitimi işiniz tamamlandıktan sonra, eğittiğiniz modeli tıklayın ve Değerlendir sekmesine göz atın. Burada birçok değerlendirme metriği vardır. Biz yalnızca birine odaklanacağız :roc_auc
SELECT * FROM ML.EVALUATE(MODEL advdata.ulb_fraud_detection)
Sonuçlar şu şekilde görünür. Dengesiz bir veri kümesinde roc_auc genellikle daha önemlidir.

Sonuçlar hakkında daha fazla bilgi edinmek için. ML.Evaluate belgelerini burada bulabilirsiniz.
8. Belirli bir süre için sınıfı tahmin etme
Yeni sorgu oluştur'a basın ve aşağıdaki SQL'i çalıştırın. Burada belirtilen süre, sahtekarlık içeren bir tutara sahip. Tahminin işe yarayıp yaramadığını değerlendirmeye çalışıyoruz.
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)
)
Çıkış aşağıdaki gibi görünmelidir (sayılar değişebilir):

Bu durumda, tutarı etiketle ilişkili olasılıkla birlikte gösteriyoruz. Buradaki sınıf sütunu, gerçek sonuçların ne olduğunu gösterir.
ML.PREDICT hakkında daha fazla bilgi edinmek için. Buraya bakın.
9. Temizleme
Bu laboratuvarla oluşturulan kaynakları temizlemek istiyorsanız sol taraftaki Explorer panelinden veri kümesini açın.

Sağ üst köşedeki Veri Kümesini Sil'i tıklayın.

Ayrıntıları onaylamak için veri kümesi adını tekrar girin. Bu örnekte advdata olacaktır.
10. Tebrikler
Tebrikler, ilk modelinizi başarıyla oluşturdunuz, gözetimli makine öğrenimini kullanarak değerlendirme ve tahmin yaptınız.
Artık mantıksal regresyon modeli oluşturmak için gereken temel adımları biliyorsunuz.
Yapabilecekleriniz
Tahminle ilgili diğer yöntemlerden bazılarına göz atın.
- BigQuery ML'yi kullanmaya başlama
- BigQuery ML ile zaman serisi tahmini
- AutoML kullanarak sahtekarlık algılama modeli
- TensorFlow kullanarak sahtekarlık tespiti