Fonction ML.TRANSFORM

Ce document décrit la fonction ML.TRANSFORM, que vous pouvez utiliser pour prétraiter des données de caractéristiques. Cette fonction traite les données d'entrée en appliquant les transformations de données capturées dans la clause TRANSFORM d'un modèle existant. Les statistiques calculées pour la transformation des données lors de l'entraînement du modèle sont appliquées aux données d'entrée de la fonction.

Pour en savoir plus sur les modèles compatibles avec le prétraitement des caractéristiques, consultez la page Parcours utilisateur de bout en bout pour chaque modèle.

Syntaxe

ML.TRANSFORM(
  MODEL `project_id.dataset.model`,
  { TABLE `project_id.dataset.table` | (query_statement) }
)

Arguments

ML.TRANSFORM utilise les arguments suivants :

  • project_id : ID de votre projet
  • dataset : valeur STRING qui indique l'ensemble de données BigQuery contenant le modèle.
  • model : nom d'un modèle. Le modèle doit avoir été créé à l'aide d'une instruction CREATE MODEL qui inclut une clause TRANSFORM pour prétraiter manuellement les données de caractéristiques. Vous pouvez vérifier si un modèle utilise une clause TRANSFORM en utilisant la commande bq show pour examiner les métadonnées du modèle. Si le modèle a été entraîné à l'aide d'une clause TRANSFORM, ses métadonnées contiennent une section concernant les colonnes de transformation. La fonction renvoie une erreur si vous spécifiez un modèle entraîné sans clause TRANSFORM.
  • table : nom de la table d'entrée qui contient les données de caractéristiques à prétraiter.

    Si table est spécifié, les noms des colonnes d'entrée de la table doivent correspondre aux noms des colonnes d'entrée de la clause TRANSFORM du modèle, et leurs types doivent être compatibles suivant les règles de coercition implicites de BigQuery. Vous pouvez obtenir les noms et les types de données des colonnes d'entrée à partir des métadonnées du modèle, dans la section sur les colonnes de caractéristiques.

  • query_statement : requête qui génère les données de caractéristiques à prétraiter. Pour connaître la syntaxe SQL acceptée par la clause query_statement, consultez la page Syntaxe des requêtes GoogleSQL.

    Si query_statement est spécifié, les noms des colonnes d'entrée de la requête doivent correspondre aux noms des colonnes d'entrée de la clause TRANSFORM du modèle, et leurs types doivent être compatibles suivant les règles de coercition implicites de BigQuery. Vous pouvez obtenir les noms et les types de données des colonnes d'entrée à partir des métadonnées du modèle, dans la section sur les colonnes de caractéristiques.

Sortie

ML.TRANSFORM renvoie les colonnes spécifiées dans la clause TRANSFORM du modèle.

Exemple

L'exemple suivant renvoie les données de caractéristiques prétraitées à l'aide de la clause TRANSFORM incluse dans le modèle nommé mydataset.mymodel dans votre projet par défaut.

Créez le modèle contenant la clause TRANSFORM :

CREATE OR REPLACE MODEL `mydataset.mymodel`
  TRANSFORM(
    species,
    island,
    ML.MAX_ABS_SCALER(culmen_length_mm) OVER () AS culmen_length_mm,
    ML.MAX_ABS_SCALER(flipper_length_mm) OVER () AS flipper_length_mm,
    sex,
    body_mass_g)
  OPTIONS (
    model_type = 'linear_reg',
    input_label_cols = ['body_mass_g'])
AS (
  SELECT *
  FROM `bigquery-public-data.ml_datasets.penguins`
  WHERE body_mass_g IS NOT NULL
);

Renvoyez les données de caractéristiques prétraitées par la clause TRANSFORM du modèle :

SELECT
  *
FROM
  ML.TRANSFORM(
    MODEL `mydataset.mymodel`,
    TABLE `bigquery-public-data.ml_datasets.penguins`);

Le résultat ressemble à ce qui suit :

+-------------------------------------+--------+---------------------+---------------------+--------+-----------------+-------------+
| species                             | island | culmen_length_mm    | flipper_length_mm   | sex    | culmen_depth_mm | body_mass_g |
--------------------------------------+--------+ ------------------- +---------------------+--------+-----------------+-------------+
| Adelie Penguin (Pygoscelis adeliae) | Dream  | 0.61409395973154368 | 0.79653679653679654 | Female | 18.4            | 3475.0      |
| Adelie Penguin (Pygoscelis adeliae) | Dream  | 0.66778523489932884 | 0.79653679653679654 | Male   | 19.1            | 4650.0      |
+-------------------------------------+--------+---------------------+---------------------+--------+-----------------+-------------+

Étapes suivantes