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 exécuter un modèle avec des données tabulaires à l'aide d'une console. Cette offre est l'ajout le plus apprécié aux fonctionnalités d'inférence et d'entraînement 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 avec SQL dans BigQuery à l'aide de la console
  • Évaluer les résultats du modèle créé
  • Prédire une transaction si elle est frauduleuse ou non à l'aide du modèle créé

2. À propos des données

Les ensembles de données contiennent des transactions effectuées par des cartes de crédit en septembre 2013 par des titulaires de cartes européens. Cet ensemble de données présente les transactions ayant eu lieu en deux jours, avec 492 fraudes sur 284 807. Il est très déséquilibré, la classe positive (fraude) représente 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 générales sur les données.

  1. Les caractéristiques V1, V2, ... V28 sont les principaux composants obtenus avec l'ACP, les seules caractéristiques qui n'ont pas été transformées par ce biais sont le temps. et "Montant".
  2. Feature "Time" (Heure de la fonctionnalité) contient les 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. Vous pouvez utiliser cette fonctionnalité pour l'apprentissage dépendant des exemples de coûts.
  4. Classe de caractéristique 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é dans le cadre d'une collaboration entre Worldline et le Machine Learning Group ( http://mlg.ulb.ac.be) de l'ULB (Université Libre de Bruxelles) sur l'exploitation du big data et la détection des fraudes.

Pour en savoir plus sur les projets en cours et passés sur des sujets associés, consultez la page 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. Calibrer la probabilité avec le sous-échantillonnage pour une 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. Cours sur la détection des fraudes à la carte de crédit du point de vue d'un professionnel, Expert Systems with applications,41,10,4915-4928,2014, Pergamon

Dal Pozzolo, Andrea; Boracchi, Giacomo Caelen, Olivier; Alippi, Cesare Bontempi, Gianluca. Détection des fraudes à la carte de crédit: une modélisation réaliste et une nouvelle stratégie d'apprentissage,transactions IEEE sur les réseaux de neurones et les systèmes d'apprentissage,29,8,3784-3797,2018,IEEE

Dal Pozzolo, Andrea Adaptive Machine learning for credit card fraude Detection, thèse de doctorat de l'ULB MLG (supervisé par 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 par flux 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 fraude 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 Combiner l'apprentissage non supervisé et supervisé dans la détection des fraudes à la carte de crédit Sciences de l'information, 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 sélectionnez "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 la page 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 dans le jeu de données public .

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

Étape 3: Mise en œuvre

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

c670e136ecd58236.png

Résultats

Elle devrait se trouver dans le panneau "Résultats de la requête" et ressembler à ceci. Les données peuvent varier

be082fb135879158.png

Examinez les colonnes concernées et le résultat.

Vous pouvez exécuter plusieurs requêtes pour comprendre comment les données sont réparties. 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 le modèle

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

7618699754e066bd.png

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

17851cc9db05dc1.png

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

b8b6731408f61d57.png

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

Étape 1: Créez une instruction

Dans la fenêtre "Requête", saisissez la requête ci-dessous pour créer le modèle. Découvrez les principales options avec cet énoncé. Explorée dans ce lien.

INPUT_LABEL_COLS indiquent l'étiquette de prédiction.

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

MODEL_TYPE indiquerait que l'algorithme utilisé, dans ce cas, est une 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: Mise en œuvre

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

Notez les éléments clés une fois l'exécution terminée

3385a54d3907443e.png

  1. dans le panneau "Explorateur" le modèle est créé
  2. Le panneau "Résultats de la requête" aura le temps nécessaire pour traiter le ML SQL comme n'importe quelle instruction SQL
  3. Le panneau "Résultats de la requête" inclut aussi le lien "Accéder au modèle" que vous pouvez explorer.

Étape 3: Explorez

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. Étudier 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, consultez cette page.

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 votre job d'entraînement de modèle terminé, cliquez sur le modèle que vous venez d'entraîner et consultez l'onglet "Évaluation". Il existe ici de nombreuses métriques d'évaluation. Nous allons nous concentrer sur une seule :roc_auc

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

Les résultats devraient ressembler à 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 Pour consulter la documentation sur ML.Évaluation, cliquez ici.

Précision et rappel

Courbe ROC et AUC

8. Classe de prédiction pour un certain temps

Appuyez sur "Saisir une nouvelle requête" et exécutez le code SQL ci-dessous. L'heure ici identifiée présente un montant frauduleux. Nous essayons de déterminer si 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 doit se présenter comme suit (les chiffres peuvent varier)

676fc8accdab2f6c.png

Dans cet exemple, nous affichons le montant avec la probabilité associée à l'étiquette. La colonne "class" ici 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 dans cet atelier, ouvrez l'ensemble de données à partir du panneau "Explorateur" à 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 détails. Dans notre cas, il s'agit de advdata.

10. Félicitations

Félicitations ! Vous avez créé votre premier modèle, évalué et prédit à l'aide du machine learning supervisé.

Vous connaissez maintenant les principales étapes à suivre pour créer un modèle de régression logistique.

Et ensuite ?

Découvrez d'autres méthodes de prédiction

Documents de référence