crea un set di dati tabulare Vertex AI

Il modello che creerai più avanti in questo tutorial richiede un dataset per addestrarlo. I dati utilizzati in questo tutorial sono un set di dati disponibile pubblicamente che contiene dettagli su tre specie di pinguini. I seguenti dati vengono utilizzati per prevedere quale delle tre specie è un pinguino.

  • island - L'isola in cui si trova una specie di pinguino.
  • culmen_length_mm: la lunghezza della cresta lungo la cima del becco di un pinguino.
  • culmen_depth_mm: l'altezza del becco di un pinguino.
  • flipper_length_mm: la lunghezza dell'ala a forma di pinna di un pinguino.
  • body_mass_g - La massa del corpo di un pinguino.
  • sex: il sesso del pinguino.

Scarica, pre-elabora e suddividi 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 numero) a dati numerici. Ad esempio, convertirai i nomi dei tre tipi di pinguini ai valori numerici 0, 1 e 2.

  • Rimuovi tutte le colonne non utilizzate nel set di dati.

  • Rimuovi tutte le righe che non possono essere utilizzate.

  • Suddividi i dati in due insiemi distinti. Ogni set di dati viene archiviato in un panda 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 l'elaborazione dei dati, il codice mappa le tre colonne categoriche valori numerici ai rispettivi valori stringa, quindi li stampa in modo che tu possa l'aspetto dei dati.

Per scaricare ed elaborare i dati, esegui il seguente codice nel 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 che non sono numerico:

{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 potrebbe vivere un pinguino. I secondi tre sono importanti perché mappano alle previsioni che ricevi alla fine di questo tutorial. La terza riga mostra le mappe della caratteristica sessuale FEMALE per 0 e MALE la caratteristica sessuale mappa a 1.

Crea un set di dati tabulare per l'addestramento del modello

Nel passaggio precedente hai scaricato ed elaborato i dati. In questo passaggio, caricare in un file BigQuery i dati archiviati in df_train DataFrame del set di dati. 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 maggiori informazioni, consulta Utilizzare le app set di dati.

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)

crea 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. Lo scopo di questo tutorial è mostrare rapidamente come ottenere previsioni, un insieme di dati relativamente piccolo viene utilizzata per mostrarti come generare previsioni. In uno scenario reale, è consigliabile 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) Visualizzare il set di dati pubblico in BigQuery

Se vuoi visualizzare i dati pubblici utilizzati in questo tutorial, puoi aprirli in in BigQuery.

  1. In Ricerca in Google Cloud, inserisci BigQuery, quindi premi invio.

  2. Nei risultati di ricerca, fai clic su BigQuery.

  3. Nella finestra di esplorazione, espandi bigquery-public-data.

  4. In bigquery-public-data, espandi ml_datasets e poi fai clic su penguins.

  5. Fai clic su uno dei nomi sotto Nome campo per visualizzare i dati di quel campo.

Visualizza il set di dati pubblico pinguino.