island
: île où se trouve une certaine espèce de manchot.culmen_length_mm
: longueur de la crête le long de la partie supérieure du bec d'un manchot.culmen_depth_mm
: hauteur du bec d'un manchot.flipper_length_mm
: longueur de l'aile (nageoire) d'un manchot.body_mass_g
: masse corporelle d'un manchot.sex
: genre du manchot.
Télécharger, prétraiter et diviser les données
Dans cette section, vous allez télécharger l'ensemble de données BigQuery accessible au public et préparer ses données. Pour préparer les données, vous allez :
Convertir les caractéristiques catégorielles (caractéristiques décrites avec une chaîne plutôt qu'un nombre) en données numériques. Par exemple, vous allez convertir les noms des trois types de manchots en valeurs numériques
0
,1
et2
.Supprimer toutes les colonnes de l'ensemble de données qui ne sont pas utilisées.
Supprimer toutes les lignes qui ne peuvent pas être utilisées.
Diviser les données en deux ensembles de données distincts. Chaque ensemble de données est stocké dans un objet pandas
DataFrame
.Le
DataFrame
df_train
contient les données utilisées pour entraîner le modèle.Le
DataFrame
df_for_prediction
contient des données utilisées pour générer les prédictions.
Après avoir traité les données, le code mappe les valeurs numériques des trois colonnes catégorielles sur leurs valeurs de chaîne, puis les imprime à l'écran pour vous permettre de voir à quoi ressemblent les données.
Pour télécharger et traiter vos données, exécutez le code suivant dans votre notebook :
import numpy as np
import pandas as pd
LABEL_COLUMN = "species"
# Define the BigQuery source dataset
BQ_SOURCE = "bigquery-public-data.ml_datasets.penguins"
# Define NA values
NA_VALUES = ["NA", "."]
# Download a table
table = bq_client.get_table(BQ_SOURCE)
df = bq_client.list_rows(table).to_dataframe()
# Drop unusable rows
df = df.replace(to_replace=NA_VALUES, value=np.NaN).dropna()
# Convert categorical columns to numeric
df["island"], island_values = pd.factorize(df["island"])
df["species"], species_values = pd.factorize(df["species"])
df["sex"], sex_values = pd.factorize(df["sex"])
# Split into a training and holdout dataset
df_train = df.sample(frac=0.8, random_state=100)
df_for_prediction = df[~df.index.isin(df_train.index)]
# Map numeric values to string values
index_to_island = dict(enumerate(island_values))
index_to_species = dict(enumerate(species_values))
index_to_sex = dict(enumerate(sex_values))
# View the mapped island, species, and sex data
print(index_to_island)
print(index_to_species)
print(index_to_sex)
Voici les valeurs mappées imprimées pour les caractéristiques qui ne sont pas numériques :
{0: 'Dream', 1: 'Biscoe', 2: 'Torgersen'}
{0: 'Adelie Penguin (Pygoscelis adeliae)', 1: 'Chinstrap penguin (Pygoscelis antarctica)', 2: 'Gentoo penguin (Pygoscelis papua)'}
{0: 'FEMALE', 1: 'MALE'}
Les trois premières valeurs sont les îles où un manchot peut habiter. Les trois valeurs suivantes sont importantes, car elles correspondent aux prédictions que vous recevrez à la fin de ce tutoriel. La troisième ligne montre que la caractéristique du genre FEMALE
correspond à 0
et que la caractéristique du genre MALE
correspond à 1
.
Créer un ensemble de données tabulaire pour entraîner votre modèle
À l'étape précédente, vous avez téléchargé et traité vos données. Au cours de cette étape, vous allez charger les données stockées dans votre DataFrame
df_train
dans un ensemble de données BigQuery. Vous allez ensuite utiliser l'ensemble de données BigQuery pour créer un ensemble de données tabulaire Vertex AI. Cet ensemble de données tabulaire est utilisé pour entraîner le modèle. Pour en savoir plus, consultez la section Utiliser des ensembles de données gérés.
Créer un ensemble de données BigQuery
Pour créer l'ensemble de données BigQuery qui servira à créer un ensemble de données Vertex AI, exécutez le code suivant. La commande create_dataset
renvoie un nouveau DataSet
BigQuery.
# Create a BigQuery dataset
bq_dataset_id = f"{project_id}.dataset_id_unique"
bq_dataset = bigquery.Dataset(bq_dataset_id)
bq_client.create_dataset(bq_dataset, exists_ok=True)
Créer un ensemble de données tabulaire Vertex AI
Pour convertir votre ensemble de données BigQuery en ensemble de données tabulaire Vertex AI, exécutez le code suivant. Vous pouvez ignorer l'avertissement concernant le nombre requis de lignes à entraîner à l'aide des données tabulaires. L'objectif de ce tutoriel étant de vous montrer rapidement comment obtenir des prédictions, un ensemble de données relativement petit est utilisé pour vous montrer comment générer des prédictions. Dans un scénario réel, il est préférable d'avoir au moins 1 000 lignes dans un ensemble de données tabulaire. La commande create_from_dataframe
renvoie un TabularDataset
Vertex AI.
# Create a Vertex AI tabular dataset
dataset = aiplatform.TabularDataset.create_from_dataframe(
df_source=df_train,
staging_path=f"bq://{bq_dataset_id}.table-unique",
display_name="sample-penguins",
)
Vous avez maintenant l'ensemble de données tabulaire Vertex AI utilisé pour entraîner votre modèle.
(Facultatif) Afficher l'ensemble de données public dans BigQuery
Si vous souhaitez afficher les données publiques utilisées dans ce tutoriel, vous pouvez les ouvrir dans BigQuery.
Dans Search (Rechercher) dans Google Cloud, saisissez BigQuery, puis appuyez sur la touche Entrée.
Dans les résultats de recherche, cliquez sur BigQuery.
Dans la fenêtre Explorer (Explorateur), développez bigquery-public-data.
Sous bigquery-public-data, développez bigquery-public-data, puis cliquez sur bigquery-public-data (manchots).
Cliquez sur l'un des noms sous Field name (Nom du champ) pour afficher les données de ce champ.