island
: l'isola in cui si trova una specie di pinguino.culmen_length_mm
: la lunghezza del rilievo lungo la parte superiore del becco di un pinguino.culmen_depth_mm
: l'altezza del becco di un pinguino.flipper_length_mm
- La lunghezza dell'ala simile a una pinna di un pinguino.body_mass_g
- La massa del corpo di un pinguino.sex
: il sesso del pinguino.
Scaricare, pre-elaborare e suddividere i dati
In questa sezione scarichi il set di dati BigQuery disponibile pubblicamente e prepari i relativi dati. Per preparare i dati:
Converti le caratteristiche categoriche (caratteristiche descritte con una stringa anziché con un numero) in dati numerici. Ad esempio, converti i nomi dei tre tipi di pinguini nei valori numerici
0
,1
e2
.Rimuovi le colonne del set di dati che non vengono utilizzate.
Rimuovi le righe che non possono essere utilizzate.
Suddividi i dati in due insiemi di dati distinti. Ogni set di dati viene archiviato in un oggetto pandas
DataFrame
.Il file
df_train
DataFrame
contiene i dati utilizzati per addestrare il modello.df_for_prediction
DataFrame
contiene i dati utilizzati per generare le previsioni.
Dopo aver elaborato i dati, il codice mappa i valori numerici delle tre colonne di categorizzazione ai relativi valori di stringa, quindi li stampa in modo da visualizzare la forma dei dati.
Per scaricare ed elaborare i dati, esegui il seguente codice nel tuo 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)
Di seguito sono riportati i valori mappati stampati per le caratteristiche non numeriche:
{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'}
I primi tre valori sono le isole in cui un pinguino potrebbe abitare. I tre valori successivi sono importanti perché corrispondono alle previsioni che ricevi alla fine di questo tutorial. La terza riga mostra la caratteristica del sesso FEMALE
mappata su
0
e la caratteristica del sesso MALE
mappata su 1
.
Crea un set di dati tabulare per l'addestramento del modello
Nel passaggio precedente hai scaricato ed elaborato i dati. In questo passaggio, carica i dati archiviati in df_train
DataFrame
in un set di dati BigQuery. Poi, utilizza il set di dati BigQuery per creare un set di dati tabulare Vertex AI. Questo set di dati tabulari viene utilizzato per addestrare il
modello. Per ulteriori informazioni, consulta Utilizzare i set di dati gestiti.
Crea un set di dati BigQuery
Per creare il set di dati BigQuery utilizzato per creare un set di dati Vertex AI, esegui il seguente codice. Il comando create_dataset
restituisce un nuovo 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)
Creare un set di dati tabulare Vertex AI
Per convertire il set di dati BigQuery in un set di dati tabulare di Vertex AI, esegui il seguente codice. Puoi ignorare l'avviso relativo al numero obbligatorio di righe per l'addestramento utilizzando i dati tabulari. Poiché lo scopo di questo tutorial è mostrarti rapidamente come ottenere le previsioni, viene utilizzato un insieme di dati relativamente piccolo per mostrarti come generarle. In uno scenario reale, ti consigliamo di avere almeno 1000 righe in un set di dati tabulare. Il comando
create_from_dataframe
restituisce 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",
)
Ora hai il set di dati tabulare Vertex AI utilizzato per addestrare il modello.
(Facoltativo) Visualizza il set di dati pubblico in BigQuery
Se vuoi visualizzare i dati pubblici utilizzati in questo tutorial, puoi aprirli in BigQuery.
In Ricerca in Google Cloud, inserisci BigQuery, quindi premi Alt+Invio.
Nei risultati di ricerca, fai clic su BigQuery.
Nella finestra Explorer, espandi bigquery-public-data.
In bigquery-public-data, espandi ml_datasets e poi fai clic su penguins.
Fai clic su uno dei nomi in Nome campo per visualizzare i dati del campo.