BigQuery ML für die Betrugserkennung bei Kreditkartentransaktionen über die Console

1. Einführung

In diesem Lab verwenden Sie BigQuery, um ein Modell mit tabellarischen Daten über eine Konsole zu trainieren und bereitzustellen. Dieses Angebot ist die bevorzugte Ergänzung für die SQL-basierte Bereitstellung und das Training von Modellen. Mit BigQuery ML können Nutzer mithilfe von SQL-Abfragen Modelle für maschinelles Lernen in BigQuery erstellen und ausführen. Dadurch, dass SQL-Experten Modelle mit bereits vorhandenen Tools erstellen können, ohne sich neues Wissen aneignen zu müssen, soll das maschinelle Lernen demokratisiert werden. BigQuery ML erhöht die Entwicklungsgeschwindigkeit, da Daten nicht mehr verschoben werden müssen.

Lerninhalte

  • Verfügbare Daten in BigQuery ansehen
  • Modell mit SQL in BigQuery über die Konsole erstellen
  • Ergebnisse des erstellten Modells bewerten
  • Mit dem erstellten Modell vorhersagen, ob eine Transaktion betrügerisch ist

2. Informationen zu den Daten

Die Datasets enthalten Transaktionen, die im September 2013 mit Kreditkarten von europäischen Karteninhabern getätigt wurden. Dieses Dataset enthält Transaktionen, die an zwei Tagen stattgefunden haben. Von 284.807 Transaktionen sind 492 betrügerisch. Das Dataset ist sehr unausgewogen.Die positive Klasse (Betrugsfälle) macht 0, 172% aller Transaktionen aus.

Sie enthält nur numerische Eingabevariablen, die das Ergebnis einer PCA-Transformation sind. Aus Gründen der Vertraulichkeit können wir die ursprünglichen Funktionen und weitere Hintergrundinformationen zu den Daten leider nicht zur Verfügung stellen.

  1. Features V1, V2, … V28 sind die Hauptkomponenten, die mit der PCA ermittelt wurden. Die einzigen Features, die nicht mit der PCA transformiert wurden, sind „Time“ und „Amount“.
  2. Das Feature „Zeit“ enthält die Sekunden, die zwischen jeder Transaktion und der ersten Transaktion im Dataset vergangen sind.
  3. Feature „Amount“ ist der Transaktionsbetrag. Dieses Feature kann beispielsweise für das beispielabhängige kostensensitive Lernen verwendet werden.
  4. Feature „Class“ ist die Antwortvariable. Sie hat den Wert 1 bei Betrug und ansonsten den Wert 0.

Die Daten wurden im Rahmen einer Forschungskooperation zwischen Worldline und der Machine Learning Group ( http://mlg.ulb.ac.be) der ULB (Université Libre de Bruxelles) zu Big Data Mining und Betrugserkennung erhoben und analysiert.

Weitere Informationen zu aktuellen und früheren Projekten zu verwandten Themen finden Sie unter https://www.researchgate.net/project/Fraud-detection-5 und auf der Seite des DefeatFraud-Projekts.

Zitation:

Andrea Dal Pozzolo, Olivier Caelen, Reid A. Johnson und Gianluca Bontempi. Calibrating Probability with Undersampling for Unbalanced Classification. 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. Streaming active learning strategies for real-life credit card fraud detection: assessment and visualization,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. Umgebung einrichten

Für dieses Codelab benötigen Sie ein Google Cloud Platform-Projekt mit aktivierter Abrechnung. Folgen Sie dieser Anleitung, um ein Projekt zu erstellen.

  1. BigQuery API aktivieren

Rufen Sie BigQuery auf und wählen Sie „Aktivieren“ aus, falls die API noch nicht aktiviert ist. Sie benötigen diese Informationen, um Ihr Modell zu erstellen.

4. Öffentliche Daten durchsuchen

Schritt 1: BigQuery aufrufen

Suchen Sie in https://cloud.google.com/console nach BigQuery.

Schritt 2: Daten mit einer Abfrage analysieren

Geben Sie im Editor die folgende SQL-Abfrage ein , um die Daten im öffentlichen Dataset zu prüfen .

SELECT * FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` LIMIT 5

Schritt 3: Ausführen

Drücken Sie den Befehl „Ausführen“ oben, um die Abfrage auszuführen.

c670e136ecd58236.png

Ergebnisse

Sie sollten im Bereich „Abfrageergebnisse“ angezeigt werden und in etwa so aussehen. Die Daten können variieren

be082fb135879158.png

Sehen Sie sich die beteiligten Spalten und die Ausgabe an.

Sie können mehrere Abfragen ausführen, um zu sehen, wie die Daten verteilt sind. Beispiele:

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. Ausgabe-Dataset erstellen

Schritt 1: Dataset für die Modellerstellung erstellen

  1. Wählen Sie im Bereich „Explorer“ auf der linken Seite das Projekt aus, an dem Sie gerade arbeiten, und klicken Sie auf die drei Punkte daneben.

7618699754e066bd.png

  1. Klicken Sie rechts oben auf „Dataset erstellen“.

17851cc9db05dc1.png

  1. Geben Sie die Details für den Namen des Datasets, die Aufbewahrungsdauer, den Speicherort usw. ein. Diese Einstellungen verwenden

b8b6731408f61d57.png

6. Logistisches Regressionsmodell erstellen

Schritt 1: Erklärung erstellen

Geben Sie im Abfragefenster die folgende Abfrage zum Erstellen des Modells ein. Wichtige Optionen in dieser Erklärung Weitere Informationen

INPUT_LABEL_COLS geben das Vorhersagelabel an.

AUTO_CLASS_WEIGHTS werden für unausgeglichene Datasets verwendet

MODEL_TYPE gibt den verwendeten Algorithmus an. In diesem Fall ist es die logistische Regression.

DATA_SPLIT_METHOD gibt die Aufteilung zwischen den Trainings- und Testdaten an.

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`

Schritt 2: Ausführen

Führen Sie die oben genannte Anweisung aus. Dies kann einige Minuten dauern.

Wichtige Dinge nach dem Lauf beachten

3385a54d3907443e.png

  1. Im Explorer-Bereich wird das Modell angezeigt.
  2. Im Bereich „Abfrageergebnisse“ wird die Dauer der Verarbeitung der ML-SQL-Anweisung angezeigt, ähnlich wie bei anderen SQL-Anweisungen.
  3. Im Bereich „Suchergebnisse“ finden Sie auch den Link „Zum Modell“, über den Sie das Modell aufrufen können.

Schritt 3: Daten analysieren

Klicken Sie auf „Zum Modell“ oder im Bereich „Explorer“, um das erstellte Modell aufzurufen. Die Tabs enthalten Informationen zum erstellten Modell, zum Training, zur Bewertung usw. Ergebnisse überprüfen

b350f1b94835f2d1.png

Das sehen wir uns in den nächsten Abschnitten genauer an.

Weitere Informationen zur logistischen Regression

7. Modellbewertungsmesswerte untersuchen

In diesem Schritt sehen wir uns an, wie gut unser Modell abgeschnitten hat.

Wenn Ihr Modelltrainingsjob abgeschlossen ist, klicken Sie auf das Modell, das Sie gerade trainiert haben, und sehen Sie sich den Tab „Bewerten“ an. Es gibt viele Messwerte für die Bewertung. Wir konzentrieren uns auf einen :roc_auc.

 SELECT * FROM ML.EVALUATE(MODEL advdata.ulb_fraud_detection)

Die Ergebnisse sehen dann etwa so aus. roc_auc ist bei einem unausgeglichenen Dataset in der Regel wichtiger.

c3c80286082dc336.png

Weitere Informationen zu den Ergebnissen Dokumentation zu ML.Evaluate

Precision und Recall

ROC-Kurve und AUC

8. Klasse für einen bestimmten Zeitraum vorhersagen

Klicken Sie auf „Neue Abfrage erstellen“ und führen Sie den folgenden SQL-Code aus. Die hier angegebene Zeit enthält einen betrügerischen Betrag. Wir versuchen, die Vorhersage zu bewerten.

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)
)

Die Ausgabe sollte in etwa so aussehen (die Zahlen können variieren):

676fc8accdab2f6c.png

In diesem Fall wird der Betrag mit der zugehörigen Wahrscheinlichkeit des Labels angezeigt. In der Spalte „Klasse“ sehen Sie die tatsächlichen Ergebnisse.

Weitere Informationen zu ML.PREDICT Weitere Informationen

9. Bereinigen

Wenn Sie die mit diesem Lab erstellten Ressourcen bereinigen möchten, öffnen Sie das Dataset im Bereich „Explorer“ auf der linken Seite.

e7d18fadd2b781be.png

Klicken Sie rechts oben auf „Dataset löschen“.

b47bc819869bed6c.png

Geben Sie den Namen des Datensatzes noch einmal ein, um die Details zu bestätigen. In unserem Fall ist das advdata.

10. Glückwunsch

Herzlichen Glückwunsch! Sie haben Ihr erstes Modell erstellt, bewertet und Vorhersagen mithilfe von überwachtem maschinellem Lernen getroffen.

Sie kennen jetzt die wichtigsten Schritte zum Erstellen eines logistischen Regressionsmodells.

Nächste Schritte

Hier sind einige weitere Möglichkeiten, die bei der Vorhersage eine Rolle spielen:

Referenzdokumente