island
: isla donde se encuentra una especie de pingüino.culmen_length_mm
: longitud de la cresta a lo largo de la parte superior del pico de un pingüino.culmen_depth_mm
: altura del pico de un pingüino.flipper_length_mm
: longitud del ala en forma de aleta de un pingüino.body_mass_g
: la masa del cuerpo de un pingüino.sex
: sexo del pingüino.
Descargar, preprocesar y dividir los datos
En esta sección, descargará el conjunto de datos de BigQuery disponible públicamente y preparará sus datos. Para preparar los datos, sigue estos pasos:
Convierte las características categóricas (características descritas con una cadena en lugar de un número) en datos numéricos. Por ejemplo, convierte los nombres de los tres tipos de pingüinos en los valores numéricos
0
,1
y2
.Elimine las columnas del conjunto de datos que no se utilicen.
Elimina las filas que no se puedan usar.
Divide los datos en dos conjuntos distintos. Cada conjunto de datos se almacena en un objeto pandas
DataFrame
.El
df_train
DataFrame
contiene los datos que se han usado para entrenar tu modelo.El
df_for_prediction
DataFrame
contiene los datos que se usan para generar predicciones.
Después de procesar los datos, el código asigna los valores numéricos de las tres columnas categóricas a sus valores de cadena y, a continuación, los imprime para que pueda ver el aspecto de los datos.
Para descargar y procesar tus datos, ejecuta el siguiente código en tu cuaderno:
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)
A continuación, se muestran los valores asignados impresos de las características que no son numéricas:
{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'}
Los tres primeros valores son las islas en las que puede vivir un pingüino. Los tres segundos valores son importantes porque se corresponden con las predicciones que recibirás al final de este tutorial. En la tercera fila se muestra que la característica sexual FEMALE
se asigna a 0
y que la característica sexual MALE
se asigna a 1
.
Crear un conjunto de datos tabular para entrenar un modelo
En el paso anterior, descargó y procesó sus datos. En este paso, cargará los datos almacenados en su df_train
DataFrame
en un conjunto de datos de BigQuery. A continuación, usa el conjunto de datos de BigQuery para crear un conjunto de datos tabular de Vertex AI. Este conjunto de datos tabulares se usa para entrenar tu modelo. Para obtener más información, consulta Usar conjuntos de datos gestionados.
Crear un conjunto de datos de BigQuery
Para crear el conjunto de datos de BigQuery que se usa para crear un conjunto de datos de Vertex AI, ejecuta el siguiente código. El comando create_dataset
devuelve un nuevo DataSet
de 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)
Crear un conjunto de datos tabulares de Vertex AI
Para convertir tu conjunto de datos de BigQuery en un conjunto de datos tabulares de Vertex AI, ejecuta el siguiente código. Puedes ignorar la advertencia sobre el número de filas necesario para entrenar con datos tabulares. Como el objetivo de este tutorial es mostrarte rápidamente cómo obtener predicciones, se usa un conjunto de datos relativamente pequeño para mostrarte cómo generar predicciones. En un caso práctico, se necesitan al menos 1000 filas en un conjunto de datos tabulares. El comando
create_from_dataframe
devuelve un Vertex AI
TabularDataset
.
# 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",
)
Ahora tienes el conjunto de datos tabulares de Vertex AI que se ha usado para entrenar tu modelo.
(Opcional) Ver el conjunto de datos público en BigQuery
Si quieres ver los datos públicos que se usan en este tutorial, puedes abrirlos en BigQuery.
En Buscar en el Google Cloud, escribe BigQuery y, a continuación, pulsa Intro.
En los resultados de búsqueda, haz clic en BigQuery.
En la ventana Explorador, despliega bigquery-public-data.
En bigquery-public-data, expanda ml_datasets y, a continuación, haga clic en penguins.
Haga clic en cualquiera de los nombres de la columna Nombre del campo para ver los datos de ese campo.