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.
- 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".
- Funzionalità "Ora" contiene i secondi trascorsi tra ogni transazione e la prima transazione nel set di dati.
- "Importo" della caratteristica è l'importo della transazione. Questa funzionalità può essere utilizzata per l'apprendimento sensibile ai costi in base all'esempio.
- 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.
- 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
Risultati
Dovrebbe essere visualizzato nel riquadro Risultati delle query e avere un aspetto simile a questo. I dati potrebbero variare
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
- Nel riquadro Explorer - A sinistra , scegli il progetto su cui stai attualmente lavorando e fai clic sui tre puntini accanto a esso
- Fai clic su Crea set di dati in alto a destra.
- Inserisci i dettagli relativi a nome, conservazione, località e così via del set di dati. Utilizza queste impostazioni
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
- Nel riquadro Explorer verrà creato il modello
- Il riquadro Risultati delle query indica la durata necessaria per elaborare l'SQL ML, come per qualsiasi istruzione SQL
- 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
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
Per saperne di più sui risultati. Cerca i documenti su ML.EVALUATE qui
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)
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
Fai clic su Elimina set di dati nell'angolo in alto a destra.
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
- Introduzione a BigQuery ML
- Previsione delle serie temporali con BigQuery ML
- Modello di rilevamento delle frodi con AutoML
- Rilevamento di attività fraudolente con Tensorflow