BigQuery ML do wykrywania oszustw w transakcjach kartą kredytową przy użyciu konsoli

1. Wprowadzenie

W tym module wykorzystasz BigQuery, aby wytrenować i udostępnić za pomocą konsoli model z danymi tabelaracyjnymi. Ta oferta jest ulubionym dodatkiem do udostępniania i trenowania modelu opartego na SQL. BigQuery ML umożliwia użytkownikom tworzenie i uruchamianie modeli systemów uczących się w BigQuery przy użyciu zapytań SQL. Celem jest zdemokratyzowanie systemów uczących się przez umożliwienie użytkownikom praktycznego języka SQL tworzenia modeli przy użyciu istniejących narzędzi oraz zwiększenie szybkości programowania przez wyeliminowanie konieczności przenoszenia danych.

Czego się nauczysz

  • Eksplorowanie danych dostępnych w BigQuery
  • Tworzenie modelu przy użyciu SQL w BigQuery za pomocą konsoli
  • Ocena wyników utworzonego modelu
  • Przewiduj transakcję, jeśli jest to oszustwo lub nie, na podstawie utworzonego modelu

2. Informacje o danych

Zbiory danych obejmują transakcje dokonane za pomocą kart kredytowych we wrześniu 2013 roku przez posiadaczy kart w Europie. Ten zbiór danych przedstawia transakcje z 2 dni, w przypadku których mamy 492 oszustwa z 284 807. Jest wysoce niezrównoważony, a klasa pozytywna (oszustwa) stanowi 0,172% wszystkich transakcji.

Zawiera tylko liczbowe zmienne wejściowe, które są wynikiem przekształcenia PCA. Ze względu na kwestie poufności nie możemy udostępnić oryginalnych funkcji ani dodatkowych informacji podstawowych o danych.

  1. Funkcje V1, V2, ... V28 to główne komponenty uzyskane dzięki PCA. Jedyne cechy, które nie zostały przekształcone za pomocą PCA, to „Czas”. i „Kwota”.
  2. Feature „Time” (Czas trwania). zawiera sekundy, które upływały między każdą transakcją a pierwszą transakcją w zbiorze danych.
  3. Funkcja „Kwota” to wartość transakcji. Ta funkcja może być używana na przykład w przypadku uczenia się zależnego od kosztów.
  4. Funkcja „Class” jest zmienną odpowiedzi i przyjmuje wartość 1 w przypadku oszustwa, a 0 w innym przypadku.

Zbiór danych został zebrany i przeanalizowany w ramach współpracy między organizacjami Worldline i Machine Learning Group ( http://mlg.ulb.ac.be) organizacji ULB (Université Libre de Bruxelles) w sprawie wydobywania big data i wykrywania oszustw.

Więcej informacji na temat bieżących i wcześniejszych projektów dotyczących powiązanych tematów można znaleźć na stronie https://www.researchgate.net/project/Fraud-detection-5 oraz na stronie projektu DefeatFraud

Cytowanie:

Andrea Dal Pozzolo, Olivier Caelen, Reid A. Johnson i Gianluca Bontempi. Kalibrowanie prawdopodobieństwa z niedostateczną próbkowaniem w klasyfikacji niezrównoważonej. Na sympozjum na temat sztucznej inteligencji i eksploracji danych (CIDM) IEEE, 2015 r.

Dal Pozzolo, Andrea; Caelen, Olivier; Le Borgne, Yann-Ael Waterschoot, Serge; Bontempi, Gianluca. Wiedza z perspektywy praktyków związanych z wykrywaniem oszustw związanych z kartami kredytowymi, Systemy ekspertów z aplikacjami,41,10,4915–4928,2014, Pergamon

Dal Pozzolo, Andrea; Boracchi, Giacomo; Caelen, Olivier; Alippi, Cesare Bontempi, Gianluca. Wykrywanie oszustw związanych z kartami kredytowymi: realistyczne modelowanie i nowatorska strategia uczenia się, transakcje IEEE w sieciach neuronowych i systemach uczących się,29,8,3784–3797,2018,IEEE

Dal Pozzolo, Andrea, Adaptacyjne systemy uczące się na potrzeby wykrywania oszustw kart kredytowych, rozprawa doktorancka ULB MLG (nadzorowana przez G. Bontempi)

Carcillo, Fabrizio; Dal Pozzolo, Andrea; Le Borgne, Yann-Aël Caelen, Olivier; Mazzer, Yannis; Bontempi, Gianluca. Scarff: skalowalna platforma do wykrywania oszustw związanych z kartami kredytowymi za pomocą Spark, Information fusion,41, 182–194,2018,Elsevier

Carcillo, Fabrizio; Le Borgne, Yann-Aël Caelen, Olivier; Bontempi, Gianluca. strumieniowanie aktywnych strategii edukacyjnych w celu wykrywania oszustw związanych z kartami kredytowymi w rzeczywistości: ocena i wizualizacja, 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 Domains Adaptation Techniques for Credit Cards Fraud Detection, INNSBDDL 2019: Recent Advances in Big Data and Deep Learning, s. 78–898, 201

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

3. Konfigurowanie środowiska

Aby uruchomić to ćwiczenia z programowania, musisz mieć projekt Google Cloud Platform z włączonymi płatnościami. Aby utworzyć projekt, postępuj zgodnie z tymi instrukcjami.

  1. Włączanie interfejsu BigQuery API

Otwórz BigQuery i kliknij Włącz, jeśli nie jest jeszcze włączony. Będzie ona potrzebna do utworzenia modelu.

4. Przeglądaj dane

Krok 1. Otwórz BigQuery

Poszukaj BigQuery na stronie https://cloud.google.com/console.

Krok 2. Zbadaj dane za pomocą zapytania

W edytorze wpisz poniższe zapytanie SQL , aby sprawdzić dane w publicznym zbiorze danych .

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

Krok 3. Wykonaj

Naciśnij polecenie Uruchom powyżej, aby wykonać zapytanie

c670e136ecd58236.png

Wyniki

Powinien się znajdować w panelu Wyniki zapytania i wyglądać mniej więcej tak. Dane mogą się różnić

be082fb135879158.png

Przejrzyj odpowiednie kolumny i wyniki.

Możesz uruchomić wiele zapytań, aby zrozumieć, jak dane są rozłożone. Oto kilka przykładów:

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. Tworzenie wyjściowego zbioru danych

Krok 1. Utwórz zbiór danych do utworzenia modelu

  1. W panelu Eksplorator – po lewej stronie wybierz projekt, nad którym obecnie pracujesz , kliknij trzy kropki obok niego.

7618699754e066bd.png

  1. W prawym górnym rogu kliknij Utwórz zbiór danych.

17851cc9db05dc1.png

  1. Wpisz nazwę zbioru danych, okres przechowywania, lokalizację itp. Użyj tych ustawień

b8b6731408f61d57.png

6. Utwórz model regresji logistycznej

Krok 1. Utwórz wyciąg

W oknie Zapytanie wpisz poniższe zapytanie, aby utworzyć model. Zapoznaj się z najważniejszymi opcjami przedstawionymi w tej instrukcji. Wyjaśniono w tym linku.

INPUT_LABEL_COLS wskazuje etykietę prognozy

AUTO_CLASS_WEIGHTS są używane w przypadku niezrównoważonych zbiorów danych

MODEL_TYPE wskazuje algorytm użyty w tym przypadku – regresja logistyczna

DATA_SPLIT_METHOD wskazuje podział między danymi treningowymi i testowymi

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`

Krok 2. Wykonaj

Uruchom powyższą instrukcję. Może to potrwać kilka minut

Zwróć uwagę na kluczowe rzeczy po zakończeniu działania

3385a54d3907443e.png

  1. Model zostanie utworzony w panelu eksploratora
  2. Panel wyników zapytania będzie miał czas potrzebny na przetworzenie ML SQL podobny do każdej instrukcji SQL.
  3. Panel Wyniki zapytania będzie też zawierać link „Przejdź do modelu”, dzięki któremu możesz go poznać.

Krok 3. Eksplorowanie

Eksploruj utworzony model, klikając link Przejdź do modelu lub w panelu Eksplorator. Karty zawierają informacje o utworzonym modelu, trenowaniu, ocenie itp. Sprawdzanie wyników

b350f1b94835f2d1.png

Omówimy to dokładniej w kolejnych sekcjach.

Więcej informacji o regresji logistycznej znajdziesz tutaj.

7. Omówienie wskaźników oceny modelu

W tym kroku sprawdzimy skuteczność naszego modelu.

Po zakończeniu zadania trenowania modelu kliknij wytrenowany przed chwilą model i spójrz na kartę Ocena. Jest wiele wskaźników oceny – skupimy się tylko na jednym :roc_auc

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

Wyniki będą wyglądały mniej więcej tak. Parametr roc_auc jest zasadniczo wyższy w przypadku niezrównoważonego zbioru danych

c3c80286082dc336.png

Aby dowiedzieć się więcej o wynikach. Poszukaj systemu ML.Oceń dokumentację tutaj

Precyzja i czułość

Krzywa charakterystyki ROC i AUC

8. Określ zajęcia przez określony czas

Kliknij Utwórz nowe zapytanie i wykonaj poniższy kod SQL. Zidentyfikowany czas zawiera fałszywą kwotę. Próbujemy ocenić, czy prognoza działa

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

Dane wyjściowe powinny wyglądać mniej więcej tak (liczba może być inna)

676fc8accdab2f6c.png

W tym przypadku wyświetlamy kwotę wraz z prawdopodobieństwem związanym z etykietą. Kolumna klasa pokazuje rzeczywiste wyniki.

Aby dowiedzieć się więcej o ML.PREDICT. Zajrzyj tutaj

9. Czyszczenie

Jeśli chcesz wyczyścić zasoby utworzone w tym module, otwórz zbiór danych z panelu Eksplorator po lewej stronie

e7d18fadd2b781be.png

W prawym górnym rogu kliknij Usuń zbiór danych.

b47bc819869bed6c.png

Aby potwierdzić szczegóły, jeszcze raz wpisz nazwę zbioru danych. W naszym przypadku będzie to advdata.

10. Gratulacje

Gratulujemy! Udało Ci się utworzyć pierwszy model, który został oceniony i prognozowany z wykorzystaniem nadzorowanych systemów uczących się.

Znasz już najważniejsze etapy tworzenia modelu regresji logistycznej.

Co dalej?

Poznaj inne sposoby prognozowania

Dokumentacja