island
: Es la isla donde se encuentra una especie de pingüino.culmen_length_mm
: Es la longitud de la crestas a lo largo del pico de un pingüino.culmen_depth_mm
: Es la altura del pico de un pingüino.flipper_length_mm
: Es la longitud del ala similar a las aletas de un pingüino.body_mass_g
: Es la masa del cuerpo de un pingüino.sex
: Es el sexo del pingüino.
Descarga, procesa previamente y divide los datos
En esta sección, descargarás el conjunto de datos de BigQuery disponible a nivel público y prepararás sus datos. Para preparar los datos, haz lo siguiente:
Convierte atributos categóricos (atributos descritos con una cadena en lugar de un número) en datos numéricos. Por ejemplo, debes convertir los nombres de los tres tipos de pingüinos en los valores numéricos
0
,1
y2
.Quita las columnas del conjunto de datos que no se usen.
Quita las filas que no se puedan usar.
Divide los datos en dos conjuntos distintos de datos. Cada conjunto de datos se almacena en un objeto
DataFrame
de Pandas.El
df_train
DataFrame
contiene datos que se usaron para entrenar tu modelo.El
df_for_prediction
DataFrame
contiene datos que se usaron para generar predicciones.
Después de procesar los datos, el código asigna los tres valores numéricos de las tres columnas categóricas a sus valores de cadena y, luego, los imprime para que puedas ver cómo se ven los datos.
Para descargar y procesar tus datos, ejecuta el siguiente código en el 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)
A continuación, se muestran los valores asignados impresos para 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 la que un pingüino podría vivir. Los segundos tres valores son importantes porque se asignan a las predicciones que recibes al final de este instructivo. La tercera fila muestra la asigación de característica del sexo FEMALE
a 0
y la característica del sexo MALE
a 1
.
Crea un conjunto de datos tabular para entrenar tu modelo
En el paso anterior, descargaste y procesaste tus datos. En este paso, debes cargar los datos almacenados en tu DataFrame
de df_train
en un conjunto de datos de BigQuery. Luego, usa el conjunto de datos de BigQuery para crear un conjunto de datos tabular de Vertex AI. Este conjunto de datos tabular se usa para entrenar tu modelo. Para obtener más información, consulta Usa conjuntos de datos administrados.
Crea 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
muestra 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)
Crea un conjunto de datos tabular de Vertex AI
Para convertir tu conjunto de datos de BigQuery en un conjunto de datos tabular de Vertex AI, ejecuta el siguiente código. Puedes ignorar la advertencia sobre la cantidad requerida de filas para entrenar con datos tabulares. Debido a que el propósito de este instructivo es mostrarte con rapidez cómo obtener predicciones, se usa un conjunto de datos relativamente pequeño para mostrarte cómo generar predicciones. En una situación real, deseas al menos 1,000 filas en un conjunto de datos tabular. El comando create_from_dataframe
muestra un TabularDataset
de 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",
)
Ahora tienes el conjunto de datos tabular de Vertex AI que se usa para entrenar tu modelo.
Visualiza el conjunto de datos públicos en BigQuery (opcional)
Si quieres ver los datos públicos que se usaron en este instructivo, puedes abrirlos en BigQuery.
En Buscar en Google Cloud, ingresa BigQuery y, luego, presiona Intro.
En los resultados de la búsqueda, haz clic en BigQuery.
En la ventana Explorer, expande Explorer.
En bigquery-public-data, expande bigquery-public-data y, luego, haz clic en bigquery-public-data.
Haz clic en cualquiera de los nombres en Nombre del campo para ver los datos de ese campo.