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 in einer Konsole zu trainieren und bereitzustellen. Dieses Angebot ist die beste Ergänzung zum SQL-basierten Modellbereitstellungs- und Trainingsangebot. Mit BigQuery ML können Nutzer mithilfe von SQL-Abfragen Modelle für maschinelles Lernen in BigQuery erstellen und ausführen. Ziel ist es, das maschinelle Lernen zu demokratisieren, indem es SQL-Experten die Möglichkeit gibt, Modelle mit ihren vorhandenen Tools zu erstellen und die Entwicklungsgeschwindigkeit zu erhöhen, da keine Daten verschoben werden müssen.

Lerninhalte

  • In BigQuery verfügbare Daten untersuchen
  • Modell mit SQL in BigQuery mit der Console erstellen
  • Ergebnisse des erstellten Modells bewerten
  • Mit dem erstellten Modell eine Transaktion vorhersagen, ob sie betrügerisch ist oder nicht

2. Informationen zu den Daten

Die Datasets enthalten Transaktionen mit Kreditkarten im September 2013 durch europäische Karteninhaber. Dieses Dataset zeigt Transaktionen an, die in zwei Tagen stattgefunden haben,wobei wir 492 Betrüger von 284.807 Transaktionen haben. Sie ist äußerst unausgewogen: Die positive Klasse (Betrug) macht 0, 172% aller Transaktionen aus.

Sie enthält nur numerische Eingabevariablen, die das Ergebnis einer PCA 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. Funktionen V1, V2, ... V28 sind die Hauptkomponenten, die mit PCA erhalten wurden. Die einzigen Merkmale, die nicht mit PCA umgewandelt wurden, sind „Zeit“. und "Betrag".
  2. Funktion „Zeit“ enthält die Sekunden, die zwischen jeder Transaktion und der ersten Transaktion im Dataset verstrichen sind.
  3. Funktion „Betrag“ ist der Transaktionsbetrag. Diese Funktion kann für beispielabhängiges kostenbewusstes Lernen verwendet werden.
  4. Funktion „Klasse“ ist die Antwortvariable und verwendet im Fall eines Betrugs den Wert 1 und andernfalls den Wert 0.

Das Dataset wurde im Rahmen eines Forschungsprojekts von Worldline und der Machine Learning Group ( http://mlg.ulb.ac.be) der ULB (Université Libre de Bruxelles) über Big Data Mining und Betrugserkennung erfasst 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 Projekts DefeatFraud.

Zitation:

Andrea Dal Pozzolo, Olivier Caelen, Reid A. Johnson und Gianluca Bontempi. Wahrscheinlichkeit mit Untersampling für unausgeglichene Klassifizierung kalibrieren: Im Symposium on Computational Intelligence and Data Mining (CIDM), IEEE, 2015

Dal Pozzolo, Andrea Caelen, Olivier Le Borgne, Yann-Ael; Waterschoot, Serge; Bontempi, Gianluca. Lektionen zur Erkennung von Kreditkartenbetrug aus der Praxis, Expertensysteme mit Anwendungen,41,10,4915–4928,2014, Pergamon

Dal Pozzolo, Andrea Boracchi, Giacomo Caelen, Olivier Alippi, Cesare Bontempi, Gianluca. Kreditkartenbetrugserkennung: eine realistische Modellierung und eine neuartige Lernstrategie, IEEE-Transaktionen in neuronalen Netzwerken und Lernsystemen29,8,3784–3797,2018,IEEE

Dal Pozzolo, Andrea Adaptive Machine Learning for Credit CardFraud Detection ULB MLG PhD Doktorarbeit (beaufsichtigt von G. Bontempi)

Carcillo, Fabrizio Dal Pozzolo, Andrea Le Borgne, Yann-Aël; Caelen, Olivier Mazzer, Yannis: Bontempi, Gianluca. Scarff: a Scaling 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 Learningstrategien für die Erkennung von Kreditkartenbetrug im echten Leben: Bewertung und Visualisierung, 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, S. 78–88, 2019

Fabrizio Carcillo, Yann-Aël Le Borgne, Olivier Caelen, Frederic Oblé, Gianluca Bontempi Combining Unüberwacht und Supervised Learning in Credit Card Fraud Detection Information Sciences, 2019

3. Umgebung einrichten

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

  1. BigQuery API aktivieren

Gehen Sie zu BigQuery und wählen Sie „Aktivieren“ aus, falls die Funktion noch nicht aktiviert ist. Sie benötigen sie, um Ihr Modell zu erstellen.

4. Öffentliche Daten durchsuchen

Schritt 1: BigQuery aufrufen

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

Schritt 2: Daten mithilfe einer Abfrage untersuchen

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

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

Schritt 3: Ausführen

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

c670e136ecd58236.png

Ergebnisse

Sollte sich im Bereich „Abfrageergebnisse“ befinden und in etwa so aussehen. Die Daten können variieren

be082fb135879158.png

Untersuchen Sie die beteiligten Spalten und die Ausgabe.

Sie können mehrere Abfragen ausführen, um zu verstehen, 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 zum Erstellen eines Modells erstellen

  1. Wählen Sie im Explorer-Steuerfeld auf der linken Seite das Projekt aus , an dem Sie gerade arbeiten. 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 Dataset-Name, -Aufbewahrung, Standort usw. ein. Diese Einstellungen verwenden

b8b6731408f61d57.png

6. Logistisches Regressionsmodell erstellen

Schritt 1: Anweisung erstellen

Geben Sie im Abfragefenster die folgende Abfrage zum Erstellen des Modells ein. Machen Sie sich mit dieser Anweisung mit den wichtigsten Optionen vertraut. Nähere Informationen dazu finden Sie in diesem Link.

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 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 obige Anweisung aus. Dies sollte ein paar Minuten dauern

Beachten Sie die wichtigsten Dinge nach Abschluss der Ausführung

3385a54d3907443e.png

  1. Im Explorer-Bereich wird das Modell
  2. Der Bereich mit den Abfrageergebnissen hat die Dauer der Verarbeitung des ML SQL-Codes ähnlich wie bei jeder SQL-Anweisung
  3. Im Bereich „Abfrageergebnisse“ finden Sie außerdem den Link „Zu Modell wechseln“, den Sie erkunden können.

Schritt 3: Erkunden

Erkunden Sie das erstellte Modell, indem Sie auf „Zum Modell wechseln“ oder im Explorer-Steuerfeld klicken. Die Tabs enthalten Informationen zum erstellten Modell, zum Training, zur Bewertung usw. Ergebnisse überprüfen

b350f1b94835f2d1.png

Darauf gehen wir in den nächsten Abschnitten näher ein.

Weitere Informationen zur logistischen Regression finden Sie hier.

7. Messwerte zur Modellbewertung untersuchen

In diesem Schritt sehen wir, wie unser Modell funktioniert hat.

Sobald Ihr Modelltrainingsjob abgeschlossen ist, klicken Sie auf das gerade trainierte Modell und schauen Sie sich den Tab Bewerten an. Es gibt viele Bewertungsmesswerte. Wir konzentrieren uns nur auf einen :roc_auc

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

Das Ergebnis würde in etwa so aussehen. „roc_auc“ ist bei einem unausgewogenen Dataset im Allgemeinen wichtiger.

c3c80286082dc336.png

Weitere Informationen zu den Ergebnissen. Suchen Sie hier nach der Dokumentation zu ML.Bewerten.

Precision und Recall

ROC Curve und AUC

8. Klasse für eine bestimmte Zeit vorhersagen

Klicken Sie auf Compose a new query (Neue Abfrage erstellen) und führen Sie den folgenden SQL-Code aus. Die hier erkannte Zeit weist einen betrügerischen Betrag auf. Wir versuchen zu beurteilen, ob die Vorhersage funktioniert.

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 zeigen wir den Betrag mit der zugehörigen Wahrscheinlichkeit für das Label an. Die Spalte class hier gibt die tatsächlichen Ergebnisse an.

Weitere Informationen zu ML.PREDICT. Hier ansehen

9. Bereinigen

Wenn Sie die in diesem Lab erstellten Ressourcen bereinigen möchten, öffnen Sie das Dataset links im Explorer-Fenster

e7d18fadd2b781be.png

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

b47bc819869bed6c.png

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

10. Glückwunsch

Glückwunsch! Sie haben Ihr erstes Modell erstellt und mithilfe von überwachtem maschinellem Lernen bewertet und vorhergesagt.

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

Was liegt als Nächstes an?

Weitere Möglichkeiten für Vorhersagen

Referenzdokumente