island
: ilha em que uma espécie de pinguim é encontrada.culmen_length_mm
: o comprimento da crista ao longo da parte superior do bico de um pinguim.culmen_depth_mm
: a altura do bico de um pinguim.flipper_length_mm
: o comprimento da asa em forma de nadadeira de um pinguim.body_mass_g
: a massa do corpo de um pinguim.sex
: o sexo do pinguim.
Fazer o download, pré-processamento e divisão dos dados
Nesta seção, você faz o download do conjunto de dados do BigQuery disponível publicamente e prepara os dados. Para preparar os dados, faça o seguinte:
Converter atributos categóricos (os que são descritos com uma string em vez de um número) em dados numéricos. Por exemplo, converta os nomes dos três tipos de pinguins em valores numéricos
0
,1
e2
.Remova todas as colunas do conjunto de dados que não são usadas.
Remova as linhas que não podem ser usadas.
Divida os dados em dois conjuntos distintos. Cada conjunto de dados é armazenado em um objeto pandas
DataFrame
.O
df_train
DataFrame
contém dados usados para treinar seu modelo.O
df_for_prediction
DataFrame
contém dados usados para gerar previsões.
Depois de processar os dados, o código mapeia os valores numéricos das três colunas categóricas para os valores de string e, em seguida, os imprime para que você possa saber como são os dados.
Para fazer o download e processar seus dados, execute o seguinte código no seu 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)
Veja a seguir os valores mapeados impressos para características não 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'}
Os primeiros três valores são as ilhas que um pinguim pode habitar. Os três segundos
valores são importantes porque mapeiam para as previsões que você recebe no final
deste tutorial. A terceira linha mostra os mapas de características de sexo FEMALE
para 0
e MALE
os mapas de características de sexo para 1
.
Criar um conjunto de dados tabular para treinar seu modelo
Na etapa anterior, você fez o download e processou seus dados. Nesta etapa, você
carrega os dados armazenados no df_train
DataFrame
em um conjunto de dados
do BigQuery. Em seguida, usa o conjunto de dados do BigQuery para criar um
conjunto de dados tabular da Vertex AI. Esse conjunto de dados tabular é usado para treinar seu modelo. Para mais informações, consulte Usar conjuntos de dados
gerenciados.
Criar um conjunto de dados do BigQuery
Para criar um conjunto de dados do BigQuery usado para gerar um
conjunto de dados da Vertex AI, execute o código a seguir. O comando create_dataset
retorna um novo DataSet
do 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)
Criar um conjunto de dados tabular da Vertex AI
Para converter seu conjunto de dados do BigQuery em um conjunto de dados tabular da Vertex AI, execute o código a seguir. Ignore o aviso sobre o número necessário de linhas para treinar usando dados tabulares. Como o objetivo deste tutorial
é mostrar rapidamente como receber previsões, um conjunto relativamente pequeno de dados é
usado para mostrar como gerar previsões. Em um cenário real, você quer
pelo menos 1.000 linhas em um conjunto de dados tabular. O comando
create_from_dataframe
retorna um TabularDataset
da 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",
)
Agora você tem o conjunto de dados tabular da Vertex AI usado para treinar seu modelo.
(Opcional) Acessar o conjunto de dados público no BigQuery
Se você quiser acessar os dados públicos usados neste tutorial, é possível abri-los no BigQuery.
Em Pesquisar no Google Cloud, insira "BigQuery" e pressione "Enter".
Nos resultados da pesquisa, clique em "BigQuery".
Na janela Explorer, expanda bigquery-public-data.
Em bigquery-public-data, expanda ml_datasets e clique em penguins.
Clique em qualquer um dos nomes em Nome do campo para acessar os dados dele.