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.
- 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".
- Funktion „Zeit“ enthält die Sekunden, die zwischen jeder Transaktion und der ersten Transaktion im Dataset verstrichen sind.
- Funktion „Betrag“ ist der Transaktionsbetrag. Diese Funktion kann für beispielabhängiges kostenbewusstes Lernen verwendet werden.
- 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.
- 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.
Ergebnisse
Sollte sich im Bereich „Abfrageergebnisse“ befinden und in etwa so aussehen. Die Daten können variieren
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
- 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.
- Klicken Sie rechts oben auf „Dataset erstellen“.
- Geben Sie die Details für Dataset-Name, -Aufbewahrung, Standort usw. ein. Diese Einstellungen verwenden
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
- Im Explorer-Bereich wird das Modell
- Der Bereich mit den Abfrageergebnissen hat die Dauer der Verarbeitung des ML SQL-Codes ähnlich wie bei jeder SQL-Anweisung
- 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
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.
Weitere Informationen zu den Ergebnissen. Suchen Sie hier nach der Dokumentation zu ML.Bewerten.
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)
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
Klicken Sie rechts oben auf „Dataset löschen“.
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
- Erste Schritte mit BigQuery ML
- Zeitachsenprognosen mit BigQuery ML
- Modell zur Betrugserkennung mit AutoML
- Betrugerkennung mit Tensorflow