Ce tutoriel explique comment utiliser les réglages d'hyperparamètres dans BigQuery ML en spécifiant l'option d'entraînement NUM_TRIALS
pour activer un ensemble d'essais d'entraînement de modèle.
Dans ce tutoriel, vous vous appuyez sur un exemple de table tlc_yellow_trips_2018
pour créer un modèle capable de prédire le pourboire d'un trajet en taxi. Avec les réglages d'hyperparamètres, le modèle montre une amélioration des performances d'environ 40 % dans l'objectif de réglage d'hyperparamètres R2_SCORE
.
Objectifs
Dans ce tutoriel, vous allez utiliser :
- BigQuery ML pour créer un modèle de régression linéaire à l'aide de l'instruction
CREATE MODEL
avec l'optionNUM_TRIALS
définie sur 20 ; - la fonction
ML.TRIAL_INFO
pour vérifier la présentation des 20 essais ; - la fonction
ML.EVALUATE
pour évaluer le modèle de ML ; - la fonction
ML.PREDICT
pour effectuer des prédictions à l'aide du modèle de ML.
Coûts
Ce tutoriel utilise des composants facturables de Google Cloud, dont :
- BigQuery
- BigQuery ML
Pour plus d'informations sur les coûts de BigQuery, consultez la page Tarifs de BigQuery.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- BigQuery est automatiquement activé dans les nouveaux projets.
Pour activer BigQuery dans un projet préexistant, accédez à .
Enable the BigQuery API.
Étape 1 : Créer un ensemble de données d'entraînement
Vous allez créer un ensemble de données BigQuery pour stocker votre modèle de ML :
Dans la console Google Cloud, accédez à la page "BigQuery".
Dans le volet Explorateur, cliquez sur le nom de votre projet.
Cliquez sur
Afficher les actions > Créer un ensemble de données.Sur la page Créer un ensemble de données, procédez comme suit :
Dans le champ ID de l'ensemble de données, saisissez
bqml_tutorial
.Pour Type d'emplacement, sélectionnez Multirégional, puis sélectionnez US (plusieurs régions aux États-Unis).
Les ensembles de données publics sont stockés dans l'emplacement multirégional
US
. Par souci de simplicité, stockez votre ensemble de données dans le même emplacement.Conservez les autres paramètres par défaut, puis cliquez sur Créer un ensemble de données.
Étape 2 : Créer votre table d'entrée d'entraînement
À cette étape, vous allez matérialiser la table d'entrée d'entraînement avec 100 000 lignes.
Affichez le schéma de la table source
tlc_yellow_trips_2018
.Créez la table de données d'entrée d'entraînement.
CREATE TABLE `bqml_tutorial.taxi_tip_input` AS SELECT * EXCEPT(tip_amount), tip_amount AS label FROM `bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2018` WHERE tip_amount IS NOT NULL LIMIT 100000
Étape 3 : Créer votre modèle
Ensuite, créez un modèle de régression linéaire avec réglage des hyperparamètres en utilisant l'exemple de table tlc_yellow_trips_2018
dans BigQuery. La requête GoogleSQL suivante permet de créer le modèle avec des réglages d'hyperparamètres.
CREATE MODEL `bqml_tutorial.hp_taxi_tip_model` OPTIONS (MODEL_TYPE='LINEAR_REG', NUM_TRIALS=20, MAX_PARALLEL_TRIALS=2) AS SELECT * FROM `bqml_tutorial.taxi_tip_input`
Détails de la requête
Le modèle LINEAR_REG
comporte deux hyperparamètres ajustables : l1_reg
et l2_reg
.
La requête ci-dessus utilise l'espace de recherche par défaut. Vous pouvez également spécifier l'espace de recherche explicitement :
OPTIONS (... L1_REG=HPARAM_RANGE(0, 20), L2_REG=HPARAM_CANDIDATES([0, 0.1, 1, 10]))
En outre, les autres options d'entraînement de réglages des hyperparamètres utilisent également leurs valeurs par défaut :
- HPARAM_TUNING_ALGORITHM :
"VIZIER_DEFAULT"
- HPARAM_TUNING_OBJECTIVES :
["r2_score"]
MAX_PARALLEL_TRIALS
est défini sur 2 pour accélérer le processus de réglage. Lorsque deux essais sont en cours d'exécution, le réglage global devrait prendre environ autant de temps que l'exécution de 10 tâches d'entraînement en série au lieu de 20. Toutefois, notez que les deux essais simultanés ne peuvent pas bénéficier de leurs résultats d'entraînement respectifs.
Exécuter la requête CREATE MODEL
Pour exécuter la requête CREATE MODEL
qui permet de créer et d'entraîner votre modèle, procédez comme suit :
Dans la console Google Cloud, cliquez sur le bouton Saisir une nouvelle requête.
Saisissez la requête GoogleSQL suivante dans la zone de texte Éditeur de requête.
Cliquez sur Exécuter.
L'exécution de la requête prend environ 17 minutes. Vous pouvez suivre la progression du réglage dans les détails de l'exécution sous "Étapes" :
Étape 4 : Obtenir des informations sur les essais
Pour afficher le descriptif de tous les essais, y compris leurs hyperparamètres, objectifs, états et essais optimaux, vous pouvez utiliser la fonction ML.TRIAL_INFO
. Le résultat s'affiche dans la console Google Cloud après l'exécution du code SQL.
SELECT * FROM ML.TRIAL_INFO(MODEL `bqml_tutorial.hp_taxi_tip_model`)
Vous pouvez exécuter cette requête SQL dès qu'un essai est terminé. Si le réglage est arrêté avant la fin du traitement, tous les essais terminés restent utilisables.
Étape 5 : Évaluer votre modèle
Après avoir créé votre modèle, vous pouvez obtenir les métriques d'évaluation de tous les essais en utilisant la fonction ML.EVALUATE
ou via Google Cloud Console.
Exécuter ML.EVALUATE
SELECT * FROM ML.EVALUATE(MODEL `bqml_tutorial.hp_taxi_tip_model`)
Pour tous les essais, ce code SQL extrait des métriques d'évaluation calculées avec les données de TEST. Pour en savoir plus sur la différence entre les objectifs ML.TRIAL_INFO
et les métriques d'évaluation ML.EVALUATE
, consultez la section Fonctions d'inférence de modèles.
Vous pouvez également évaluer un essai spécifique en fournissant vos propres données. Pour en savoir plus, consultez la section Fonctions d'inférence de modèles.
Vérifier les métriques d'évaluation via Google Cloud Console
Vous pouvez également vérifier les métriques d'évaluation dans l'onglet EVALUATION
.
Étape 6 : Utiliser votre modèle pour prédire les conseils liés au taxi
Maintenant que vous avez évalué votre modèle, l'étape suivante consiste à vous en servir pour prédire le pourboire du taxi.
La requête exécutée pour prédire le pourboire est la suivante :
SELECT * FROM ML.PREDICT(MODEL `bqml_tutorial.hp_taxi_tip_model`, ( SELECT * FROM `bqml_tutorial.taxi_tip_input` LIMIT 10))
Détails de la requête
La toute première instruction SELECT
récupère toutes les colonnes, y compris la colonne predicted_label
. Cette colonne est générée par la fonction ML.PREDICT
.
Lorsque vous utilisez la fonction ML.PREDICT
, le nom de la colonne de résultats pour le modèle est predicted_label_column_name
.
La prédiction est effectuée par défaut sur la base de l'essai optimal. Vous pouvez sélectionner un autre essai en spécifiant le paramètre trial_id
.
SELECT * FROM ML.PREDICT(MODEL `bqml_tutorial.hp_taxi_tip_model`, ( SELECT * FROM `bqml_tutorial.taxi_tip_input` LIMIT 10), STRUCT(3 AS trial_id))
Pour en savoir plus sur l'utilisation des fonctions d'inférence de modèles, consultez la section Fonctions d'inférence de modèles.
Effectuer un nettoyage
Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.
- Supprimez le projet que vous avez créé.
- Ou conservez le projet et supprimez l'ensemble de données.
Supprimer l'ensemble de données
La suppression de votre projet entraîne celle de tous les ensembles de données et de toutes les tables qui lui sont associés. Si vous préférez réutiliser le projet, vous pouvez supprimer l'ensemble de données que vous avez créé dans ce tutoriel :
Si nécessaire, ouvrez la page BigQuery dans Cloud Console.
Dans le panneau de navigation, cliquez sur l'ensemble de données bqml_tutorial que vous avez créé.
À droite de la fenêtre, cliquez sur Supprimer l'ensemble de données. Cette action supprime l'ensemble de données, la table et toutes les données.
Dans la boîte de dialogue Supprimer l'ensemble de données, confirmez la commande de suppression en saisissant le nom de votre ensemble de données (
bqml_tutorial
), puis cliquez sur Supprimer.
Supprimer votre projet
Pour supprimer le projet :
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Étape suivante
- Pour en savoir plus sur le machine learning, consultez le Cours d'initiation au Machine Learning.
- Pour obtenir plus d'informations sur BigQuery ML, consultez la page Présentation de BigQuery ML.
- Pour en savoir plus sur la console Google Cloud, consultez la page Utiliser la console Google Cloud.