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.
- 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”.
- Feature „Time” (Czas trwania). zawiera sekundy, które upływały między każdą transakcją a pierwszą transakcją w zbiorze danych.
- Funkcja „Kwota” to wartość transakcji. Ta funkcja może być używana na przykład w przypadku uczenia się zależnego od kosztów.
- 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.
- 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
Wyniki
Powinien się znajdować w panelu Wyniki zapytania i wyglądać mniej więcej tak. Dane mogą się różnić
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
- W panelu Eksplorator – po lewej stronie wybierz projekt, nad którym obecnie pracujesz , kliknij trzy kropki obok niego.
- W prawym górnym rogu kliknij Utwórz zbiór danych.
- Wpisz nazwę zbioru danych, okres przechowywania, lokalizację itp. Użyj tych ustawień
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
- Model zostanie utworzony w panelu eksploratora
- Panel wyników zapytania będzie miał czas potrzebny na przetworzenie ML SQL podobny do każdej instrukcji SQL.
- 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
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
Aby dowiedzieć się więcej o wynikach. Poszukaj systemu ML.Oceń dokumentację tutaj
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)
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
W prawym górnym rogu kliknij Usuń zbiór danych.
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
- Pierwsze kroki z BigQuery ML
- Prognozowanie ciągów czasowych za pomocą BigQuery ML
- Model wykrywania oszustw z użyciem AutoML
- Wykrywanie oszustw za pomocą Tensorflow