BigQuery ML pour détecter les fraudes dans les transactions par carte de crédit à l'aide de la console

1. Introduction

Dans cet atelier, vous allez utiliser BigQuery pour entraîner et diffuser un modèle avec des données tabulaires à l'aide d'une console. Cette offre est un complément idéal à l'entraînement et à la diffusion de modèles basés sur SQL. BigQuery ML permet aux utilisateurs de créer et d'exécuter des modèles de machine learning dans BigQuery à l'aide de requêtes SQL. L'objectif est de démocratiser le machine learning en permettant aux utilisateurs de SQL de créer des modèles à l'aide de leurs propres outils et d'accélérer le rythme de développement en leur évitant d'avoir à transférer des données.

Objectifs de l'atelier

  • Explorer les données disponibles dans BigQuery
  • Créer un modèle à l'aide de SQL dans BigQuery à l'aide de la console
  • Évaluer les résultats du modèle créé
  • Prédire si une transaction est frauduleuse ou non avec le modèle créé

2. À propos des données

Les ensembles de données contiennent des transactions effectuées par carte de crédit en septembre 2013 par des titulaires de cartes européens. Cet ensemble de données présente les transactions effectuées sur deux jours, avec 492 transactions frauduleuses sur 284 807. Il est très déséquilibré, la classe positive (fraudes) représentant 0,172 % de toutes les transactions.

Elle ne contient que des variables d'entrée numériques résultant d'une transformation PCA. Malheureusement, pour des raisons de confidentialité, nous ne pouvons pas vous fournir les fonctionnalités d'origine ni plus d'informations sur les données.

  1. Features V1, V2, ... V28 sont les composants principaux obtenus avec l'ACP. Les seules caractéristiques qui n'ont pas été transformées avec l'ACP sont "Time" et "Amount".
  2. La caractéristique "Heure" contient le nombre de secondes écoulées entre chaque transaction et la première transaction de l'ensemble de données.
  3. La caractéristique "Montant" correspond au montant de la transaction. Elle peut être utilisée pour l'apprentissage sensible aux coûts dépendant des exemples.
  4. La classe de fonctionnalité est la variable de réponse. Elle prend la valeur 1 en cas de fraude et 0 dans le cas contraire.

L'ensemble de données a été collecté et analysé lors d'une collaboration de recherche entre Worldline et le groupe Machine Learning ( http://mlg.ulb.ac.be) de l'ULB (Université Libre de Bruxelles) sur l'exploration de big data et la détection de la fraude.

Pour en savoir plus sur les projets actuels et passés sur des thèmes connexes, consultez https://www.researchgate.net/project/Fraud-detection-5 et la page du projet DefeatFraud.

Citation :

Andrea Dal Pozzolo, Olivier Caelen, Reid A. Johnson et Gianluca Bontempi. Calibration des probabilités avec sous-échantillonnage pour la classification déséquilibrée. In Symposium on Computational Intelligence and Data Mining (CIDM), IEEE, 2015

Dal Pozzolo, Andrea; Caelen, Olivier; Le Borgne, Yann-Ael; Waterschoot, Serge; Bontempi, Gianluca. Learned lessons in credit card fraud detection from a practitioner perspective, Expert systems with applications,41,10,4915-4928,2014, Pergamon

Dal Pozzolo, Andrea; Boracchi, Giacomo; Caelen, Olivier; Alippi, Cesare; Bontempi, Gianluca. Credit card fraud detection: a realistic modeling and a novel learning strategy,IEEE transactions on neural networks and learning systems,29,8,3784-3797,2018,IEEE

Dal Pozzolo, Andrea Adaptive Machine learning for credit card fraud detection ULB MLG PhD thesis (supervised by G. Bontempi)

Carcillo, Fabrizio; Dal Pozzolo, Andrea; Le Borgne, Yann-Aël; Caelen, Olivier; Mazzer, Yannis; Bontempi, Gianluca. Scarff : un framework évolutif pour la détection des fraudes à la carte de crédit en streaming avec Spark, Information fusion,41, 182-194,2018,Elsevier

Carcillo, Fabrizio; Le Borgne, Yann-Aël; Caelen, Olivier; Bontempi, Gianluca. Streaming active learning strategies for real-life credit card fraud detection: assessment and visualization,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, pp 78-88, 2019

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

3. Configurer votre environnement

Pour suivre cet atelier de programmation, vous aurez besoin d'un projet Google Cloud Platform dans lequel la facturation est activée. Pour créer un projet, suivez ces instructions.

  1. Activer l'API BigQuery

Accédez à BigQuery et cliquez sur "Activer" si ce n'est pas déjà fait. Vous en aurez besoin pour créer votre modèle.

4. Explorer les données

Étape 1 : Accédez à BigQuery

Recherchez BigQuery sur https://cloud.google.com/console.

Étape 2 : Explorez les données à l'aide d'une requête

Dans l'éditeur , saisissez la requête SQL ci-dessous pour examiner les données de l'ensemble de données public .

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

Étape 3 : Exécuter

Appuyez sur la commande "Exécuter" ci-dessus pour exécuter la requête.

c670e136ecd58236.png

Résultats

Ils doivent s'afficher dans le panneau "Résultats de la requête" et ressembler à ceci : Les données peuvent varier

be082fb135879158.png

Explorez les colonnes concernées et la sortie.

Vous pouvez exécuter plusieurs requêtes pour comprendre comment les données sont distribuées. Voici quelques exemples :

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. Créer un ensemble de données de sortie

Étape 1 : Créez un ensemble de données pour créer votre modèle

  1. Dans le panneau "Explorateur" à gauche, sélectionnez le projet sur lequel vous travaillez actuellement, puis cliquez sur les trois points à côté.

7618699754e066bd.png

  1. Cliquez sur "Créer un ensemble de données" en haut à droite.

17851cc9db05dc1.png

  1. Saisissez les détails du nom de l'ensemble de données, de la période de conservation, de l'emplacement, etc. Utiliser ces paramètres

b8b6731408f61d57.png

6. Créer un modèle de régression logistique

Étape 1 : Créez une déclaration

Dans la fenêtre "Requête", saisissez la requête ci-dessous pour créer le modèle. Comprendre les options clés grâce à cette déclaration Pour en savoir plus, consultez ce lien.

INPUT_LABEL_COLS indique l'étiquette de prédiction.

AUTO_CLASS_WEIGHTS est utilisé pour les ensembles de données déséquilibrés.

MODEL_TYPE indique l'algorithme utilisé. Dans ce cas, il s'agit de la régression logistique.

DATA_SPLIT_METHOD indique la répartition entre les données d'entraînement et de 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`

Étape 2 : Exécuter

Exécutez l'instruction ci-dessus. Cette opération prend quelques minutes.

Remarquez les éléments clés après l'exécution

3385a54d3907443e.png

  1. Le panneau "Explorer" affichera le modèle créé.
  2. Le panneau "Résultats de la requête" indiquera la durée du traitement du ML SQL, comme pour toute instruction SQL.
  3. Le panneau "Résultats de la requête" contient également le lien "Accéder au modèle" pour vous permettre d'explorer.

Étape 3 : Explorer

Explorez le modèle créé en cliquant sur "Accéder au modèle" ou dans le panneau "Explorateur". Les onglets fournissent des informations sur le modèle créé , l'entraînement, l'évaluation, etc. Examinez les résultats.

b350f1b94835f2d1.png

Nous aborderons ce point plus en détail dans les sections suivantes.

Pour en savoir plus sur la régression logistique, cliquez ici.

7. Explorer les métriques d'évaluation du modèle

Au cours de cette étape, nous allons examiner les performances de notre modèle.

Une fois le job d'entraînement de votre modèle terminé, cliquez sur le modèle que vous venez d'entraîner et accédez à l'onglet "Évaluer". De nombreuses métriques d'évaluation sont disponibles. Nous n'en examinerons qu'une seule : roc_auc.

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

Les résultats ressembleraient à ceci. roc_auc est généralement plus important sur un ensemble de données déséquilibré

c3c80286082dc336.png

Pour en savoir plus sur les résultats. Consultez la documentation ML.Evaluate ici.

Précision et rappel

Courbe ROC et AUC

8. Prédire la classe pour une certaine période

Cliquez sur "Saisir une nouvelle requête" et exécutez le code SQL ci-dessous. Le temps identifié ici correspond à un montant frauduleux. Nous essayons de vérifier que la prédiction fonctionne.

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

Le résultat devrait ressembler à ceci (les nombres peuvent varier) :

676fc8accdab2f6c.png

Dans cet exemple, nous affichons le montant avec la probabilité associée de l'étiquette. La colonne "Classe" indique les résultats réels.

Pour en savoir plus sur ML.PREDICT. Cliquez ici

9. Nettoyage

Si vous souhaitez nettoyer les ressources créées avec cet atelier, ouvrez l'ensemble de données à partir du panneau "Explorer" sur la gauche.

e7d18fadd2b781be.png

Cliquez sur "Supprimer l'ensemble de données" en haut à droite.

b47bc819869bed6c.png

Saisissez à nouveau le nom de l'ensemble de données pour confirmer les informations. Dans notre cas, il s'agit de advdata.

10. Félicitations

Félicitations, vous venez de créer votre premier modèle, de l'évaluer et de faire des prédictions à l'aide du machine learning supervisé.

Vous connaissez désormais les principales étapes nécessaires pour créer un modèle de régression logistique.

Et ensuite ?

Découvrez d'autres façons de prédire

Documents de référence