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.
- 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".
- 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.
- 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.
- 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.
- 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.
Résultats
Elle devrait se trouver dans le panneau "Résultats de la requête" et ressembler à ceci. Les données peuvent varier
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
- Dans le panneau "Explorateur", sélectionnez à gauche le projet sur lequel vous travaillez, puis cliquez sur les trois points à côté de celui-ci.
- Cliquez sur "Créer un ensemble de données" en haut à droite.
- Saisissez les détails concernant le nom, la conservation, l'emplacement, etc. de l'ensemble de données Utiliser ces paramètres
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
- dans le panneau "Explorateur" le modèle est créé
- Le panneau "Résultats de la requête" aura le temps nécessaire pour traiter le ML SQL comme n'importe quelle instruction SQL
- 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
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é
Pour en savoir plus sur les résultats Pour consulter la documentation sur ML.Évaluation, cliquez ici.
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)
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.
Cliquez sur "Supprimer l'ensemble de données" en haut à droite.
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
- Premiers pas avec BigQuery ML
- Prévision de séries temporelles avec BigQuery ML
- Modèle de détection de fraudes à l'aide d'AutoML
- Détection des fraudes à l'aide de TensorFlow