BigQuery ML per il rilevamento di frodi nelle transazioni con carta di credito tramite la console

1. Introduzione

In questo lab utilizzerai BigQuery per addestrare e gestire un modello con dati tabulari utilizzando una console. Questa offerta è l'aggiunta preferita alla distribuzione e all'addestramento del modello basato su SQL. BigQuery ML consente agli utenti di creare ed eseguire modelli di machine learning in BigQuery utilizzando query SQL. L'obiettivo è democratizzare il machine learning consentendo a chi utilizza SQL di creare modelli con i propri strumenti esistenti e aumentare la velocità di sviluppo attraverso l'eliminazione della necessità di spostare i dati.

Cosa imparerai a fare

  • Esplora i dati disponibili in BigQuery
  • Crea un modello utilizzando SQL in BigQuery con la console
  • Valuta i risultati del modello creato
  • Prevedi una transazione fraudolenta o meno con il modello creato

2. Informazioni sui dati

I set di dati contengono transazioni effettuate con carte di credito nel settembre 2013 da titolari di carte europee. Questo set di dati presenta le transazioni che si sono verificate in due giorni e ci sono 492 frodi su 284.807 transazioni. È altamente sbilanciato, la classe positiva (frodi) rappresenta lo 0,172% di tutte le transazioni.

Contiene solo variabili di input numerici che sono il risultato di una trasformazione PCA. Purtroppo, a causa di problemi di riservatezza, non possiamo fornire le funzionalità originali e ulteriori informazioni di base sui dati.

  1. Le caratteristiche V1, V2, ... V28 sono i componenti principali ottenuti con la PCA. Le uniche funzionalità che non sono state trasformate con la PCA sono le "Time" e "Importo".
  2. Funzionalità "Ora" contiene i secondi trascorsi tra ogni transazione e la prima transazione nel set di dati.
  3. "Importo" della caratteristica è l'importo della transazione. Questa funzionalità può essere utilizzata per l'apprendimento sensibile ai costi in base all'esempio.
  4. Classe della caratteristica è la variabile di risposta e assume il valore 1 in caso di attività fraudolenta e 0 in caso contrario.

Il set di dati è stato raccolto e analizzato durante una collaborazione tra Worldline e Machine Learning Group ( http://mlg.ulb.ac.be) dell'ULB (Université Libre de Bruxelles) sul mining di big data e sul rilevamento delle frodi.

Maggiori dettagli sui progetti attuali e passati in merito ad argomenti correlati sono disponibili all'indirizzo https://www.researchgate.net/project/Fraud-detection-5 e nella pagina del progetto DefeatFraud

Citazione:

Andrea Dal Pozzolo, Olivier Caelen, Reid A. Johnson e Gianluca Bontempi. Calibrazione della probabilità con sottocampionamento per classificazione non bilanciata In Symposium on Computational Intelligence and Data Mining (CIDM), IEEE, 2015

Dal Pozzolo, Andrea; Caelen, Olivier; Le Borgne, Yann-Ael Barca d'acqua, Serge; Bontempi, Gianluca. Lezioni apprese sul rilevamento delle frodi con carta di credito dal punto di vista dei professionisti, Sistemi per esperti con applicazioni,41,10,4915-4928,2014, Pergamon

Dal Pozzolo, Andrea; Boracchi, Giacomo; Caelen, Olivier; Alippi, Cesare Bontempi, Gianluca. Rilevamento di attività fraudolente con carta di credito: un modello realistico e una nuova strategia di apprendimento, transazioni IEEE su reti neurali e sistemi di apprendimento,29,8,3784-3797,2018,IEEE

Dal Pozzolo, Andrea Adaptive Machine learning for credit card fraud detection ULB MLG PhD tesi (supervisionato da G. Bontempi)

Carcillo, Fabrizio; Dal Pozzolo, Andrea; Le Borgne, Yann-Aël Caelen, Olivier; Mazzer, Yannis; Bontempi, Gianluca. Scarff: un framework scalabile per il rilevamento di attività fraudolente con carte di credito in streaming con Spark, Information Fusion,41, 182-194,2018,Elsevier

Carcillo, Fabrizio; Le Borgne, Yann-Aël Caelen, Olivier; Bontempi, Gianluca. Flusso di strategie di apprendimento attivo per il rilevamento di frodi con carte di credito nella vita reale: valutazione e visualizzazione, 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 Adjustation Techniques for Credit Cards Fraud Detection, INNSBDDL 2019: Recent Progresss in Big Data and Deep Learning, pp 78-88, 2019

Fabrizio Carcillo, Yann-Aël Le Borgne, Olivier Caelen, Frederic Oblé, Gianluca Bontempi Combinare l'apprendimento non supervisionato e supervisionato nel rilevamento delle frodi tramite carta di credito Scienze dell'informazione, 2019

3. Configura l'ambiente

Per eseguire questo codelab, è necessario un progetto Google Cloud con fatturazione abilitata. Per creare un progetto, segui le istruzioni riportate qui.

  1. Abilita l'API BigQuery

Vai a BigQuery e seleziona Abilita se non è già abilitato. Ne avrai bisogno per creare il tuo modello.

4. esplora i dati

Passaggio 1: vai a BigQuery

Cerca BigQuery in https://cloud.google.com/console

Passaggio 2: esplora i dati utilizzando la query

Nell'editor , digita la seguente query SQL per esaminare i dati del set di dati pubblico .

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

Passaggio 3: esegui

Premi il comando Esegui sopra per eseguire la query

c670e136ecd58236.png

Risultati

Dovrebbe essere visualizzato nel riquadro Risultati delle query e avere un aspetto simile a questo. I dati potrebbero variare

be082fb135879158.png

Esplora le colonne interessate e l'output.

Puoi eseguire più query per capire come vengono distribuiti i dati. Alcuni esempi possono includere:

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. crea un set di dati di output

Passaggio 1: crea il set di dati per la creazione del modello

  1. Nel riquadro Explorer - A sinistra , scegli il progetto su cui stai attualmente lavorando e fai clic sui tre puntini accanto a esso

7618699754e066bd.png

  1. Fai clic su Crea set di dati in alto a destra.

17851cc9db05dc1.png

  1. Inserisci i dettagli relativi a nome, conservazione, località e così via del set di dati. Utilizza queste impostazioni

b8b6731408f61d57.png

6. Crea modello di regressione logistica

Passaggio 1: crea l'istruzione

Nella finestra Query, digita la query seguente per creare il modello. Comprendi le opzioni principali con questa affermazione. Spiegato in questo link.

INPUT_LABEL_COLS indicano l'etichetta di previsione

AUTO_CLASS_WEIGHTS vengono utilizzati per set di dati sbilanciati

MODEL_TYPE indicherebbe l'algoritmo utilizzato in questo caso è la regressione logistica.

DATA_SPLIT_METHOD indica la suddivisione tra i dati di addestramento e quelli di test

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`

Passaggio 2: esegui

Esegui l'istruzione riportata sopra. L'operazione dovrebbe richiedere un paio di minuti

Osserva gli aspetti principali al termine dell'esecuzione

3385a54d3907443e.png

  1. Nel riquadro Explorer verrà creato il modello
  2. Il riquadro Risultati delle query indica la durata necessaria per elaborare l'SQL ML, come per qualsiasi istruzione SQL
  3. Il riquadro Risultati delle query includerà anche il link Vai al modello per esplorare

Passaggio 3: esplora

Esplora il modello creato facendo clic su Vai al modello o nel riquadro Explorer. Le schede forniscono informazioni sul modello creato, sull'addestramento, sulla valutazione e così via. Esaminare i risultati

b350f1b94835f2d1.png

Approfondiremo questo aspetto nelle prossime sezioni

Per saperne di più sulla regressione logistica, fai clic qui.

7. Esplorazione delle metriche di valutazione del modello

In questo passaggio vedremo le prestazioni del modello.

Una volta completato il job di addestramento del modello, fai clic sul modello che hai appena addestrato e dai un'occhiata alla scheda Valuta. Qui ci sono molte metriche di valutazione, ci concentreremo su una sola :auc roc

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

I risultati sarebbero simili a questo. auc roc è generalmente più importante su un set di dati sbilanciato

c3c80286082dc336.png

Per saperne di più sui risultati. Cerca i documenti su ML.EVALUATE qui

Precisione e richiamo

Curva ROC e AUC

8. Prevedi la lezione per un determinato orario

Premi Crea una nuova query ed esegui il codice SQL riportato di seguito. Il tempo qui identificato è di importo fraudolento. Stiamo cercando di verificare che la previsione funzioni

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

L'output dovrebbe essere simile al seguente (i numeri potrebbero variare)

676fc8accdab2f6c.png

In questo caso, mostriamo l'importo con la probabilità associata dell'etichetta. La colonna della classe in questo caso indica i risultati effettivi.

Per saperne di più su ML.PREDICT, Guarda qui

9. Esegui la pulizia

Se vuoi eseguire la pulizia delle risorse create con questo lab, apri il set di dati dal riquadro Explorer sul lato sinistro

e7d18fadd2b781be.png

Fai clic su Elimina set di dati nell'angolo in alto a destra.

b47bc819869bed6c.png

Inserisci di nuovo il nome del set di dati per confermare i dettagli. Nel nostro caso si tratta di advdata

10. Complimenti

Complimenti, hai creato il tuo primo modello, valutato e previsto utilizzando il machine learning supervisionato.

Ora conosci i passaggi chiave necessari per creare un modello di regressione logistica.

Passaggi successivi

Altri modi per fare previsioni

Documenti di riferimento