Neste tutorial, você vai aprender a usar um modelo de classificador de árvore otimizada para prever a faixa de renda de indivíduos com base nos dados demográficos deles. O modelo prevê se um valor se enquadra em uma das duas categorias. Nesse caso, se a renda anual de um indivíduo fica acima ou abaixo de US $50.000.
Neste tutorial, usamos o conjunto de dados bigquery-public-data.ml_datasets.census_adult_income
. Esse conjunto contém as informações demográficas e de renda de residentes dos EUA entre 2000 e 2010.
Objetivos
Este tutorial vai orientar você nas seguintes tarefas:
- Criação de um modelo de árvore otimizada para prever a faixa de renda dos respondentes do censo
usando a
instrução
CREATE MODEL
. - Avalie o modelo usando a
função
ML.EVALUATE
. - Receber previsões do modelo usando a
função
ML.PREDICT
.
Custos
Neste tutorial, há componentes faturáveis do Google Cloud, entre eles:
- BigQuery
- BigQuery ML
Para mais informações sobre os custos do BigQuery, consulte a página de preços.
Para mais informações sobre os custos do BigQuery ML, consulte os preços do BigQuery ML.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- O BigQuery é ativado automaticamente em novos projetos.
Para ativar o BigQuery em um projeto preexistente, acesse
Enable the BigQuery API.
Permissões exigidas
- Para criar o conjunto de dados, é preciso ter a permissão de IAM
bigquery.datasets.create
. Para criar o recurso de conexão, você precisa das seguintes permissões:
bigquery.connections.create
bigquery.connections.get
Para criar o modelo, você precisa das seguintes permissões:
bigquery.jobs.create
bigquery.models.create
bigquery.models.getData
bigquery.models.updateData
bigquery.connections.delegate
Para executar a inferência, você precisa das seguintes permissões:
bigquery.models.getData
bigquery.jobs.create
Para mais informações sobre os papéis e as permissões do IAM no BigQuery, consulte Introdução ao IAM.
Criar um conjunto de dados
Crie um conjunto de dados do BigQuery para armazenar o modelo de ML:
No console do Google Cloud, acesse a página do BigQuery.
No painel Explorer, clique no nome do seu projeto.
Clique em
Conferir ações > Criar conjunto de dados.Na página Criar conjunto de dados, faça o seguinte:
Para o código do conjunto de dados, insira
bqml_tutorial
.Em Tipo de local, selecione Multirregião e EUA (várias regiões nos Estados Unidos).
Os conjuntos de dados públicos são armazenados na multirregião
US
. Para simplificar, armazene seus conjuntos de dados no mesmo local.Mantenha as configurações padrão restantes e clique em Criar conjunto de dados.
Preparar os dados de amostra
O modelo criado neste tutorial prevê a faixa de renda dos entrevistados do censo com base nos seguintes recursos:
- Idade
- Tipo de trabalho realizado
- Estado civil
- Grau de escolaridade
- Profissão
- Horas trabalhadas por semana
A coluna education
não é incluída nos dados de treinamento porque
as colunas education
e education_num
expressam o nível de escolaridade do entrevistado em formatos diferentes.
Você separa os dados em conjuntos de treinamento, avaliação e previsão criando
uma nova coluna dataframe
derivada da coluna functional_weight
.
Oitenta por cento dos dados são usados para treinar o modelo, e os 20% restantes são usados para avaliação e previsão.
SQL
Para preparar os dados de amostra, crie uma visualização para
conter os dados de treinamento. Essa visualização é usada pela instrução CREATE MODEL
posteriormente neste
tutorial.
Execute a consulta que prepara os dados de amostra:
No Console do Google Cloud, acesse a página BigQuery.
No Editor de consultas, execute esta consulta:
CREATE OR REPLACE VIEW `bqml_tutorial.input_data` AS SELECT age, workclass, marital_status, education_num, occupation, hours_per_week, income_bracket, CASE WHEN MOD(functional_weight, 10) < 8 THEN 'training' WHEN MOD(functional_weight, 10) = 8 THEN 'evaluation' WHEN MOD(functional_weight, 10) = 9 THEN 'prediction' END AS dataframe FROM `bigquery-public-data.ml_datasets.census_adult_income`;
No painel Explorer, expanda o conjunto de dados
bqml_tutorial
e localize a visualizaçãoinput_data
.Clique no nome da visualização para abrir o painel de informações. O esquema de visualização aparece na guia Esquema.
BigQuery DataFrames
Crie um DataFrame chamado input_data
. Você vai usar input_data
mais adiante neste tutorial para treinar o modelo, avaliá-lo e fazer previsões.
Antes de testar esta amostra, siga as instruções de configuração dos BigQuery DataFrames no Guia de início rápido do BigQuery: como usar os BigQuery DataFrames. Para mais informações, consulte a documentação de referência do BigQuery DataFrames.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Criar o modelo de árvore otimizada
Crie um modelo de árvore otimizada para prever a faixa de renda dos entrevistados do censo e treine com os dados do censo. A consulta leva cerca de 30 minutos para ser concluída.
SQL
Siga estas etapas para criar o modelo:
No Console do Google Cloud, acesse a página BigQuery.
No Editor de consultas, cole a consulta a seguir e clique em Executar:
CREATE MODEL `bqml_tutorial.tree_model` OPTIONS(MODEL_TYPE='BOOSTED_TREE_CLASSIFIER', BOOSTER_TYPE = 'GBTREE', NUM_PARALLEL_TREE = 1, MAX_ITERATIONS = 50, TREE_METHOD = 'HIST', EARLY_STOP = FALSE, SUBSAMPLE = 0.85, INPUT_LABEL_COLS = ['income_bracket']) AS SELECT * EXCEPT(dataframe) FROM `bqml_tutorial.input_data` WHERE dataframe = 'training';
Depois que a consulta for concluída, o modelo
tree_model
vai aparecer no painel Explorer. Como a consulta usa uma instruçãoCREATE MODEL
para criar um modelo, não é possível ver os resultados da consulta.
BigQuery DataFrames
Antes de testar esta amostra, siga as instruções de configuração dos BigQuery DataFrames no Guia de início rápido do BigQuery: como usar os BigQuery DataFrames. Para mais informações, consulte a documentação de referência do BigQuery DataFrames.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Avaliar o modelo
SQL
Siga estas etapas para avaliar o modelo:
No Console do Google Cloud, acesse a página BigQuery.
No Editor de consultas, cole a consulta a seguir e clique em Executar:
SELECT * FROM ML.EVALUATE (MODEL `bqml_tutorial.tree_model`, ( SELECT * FROM `bqml_tutorial.input_data` WHERE dataframe = 'evaluation' ) );
A resposta deve ficar assim:
+---------------------+---------------------+---------------------+-------------------+---------------------+---------------------+ | precision | recall | accuracy | f1_score | log_loss | roc_auc | +---------------------+---------------------+---------------------+-------------------+-------------------------------------------+ | 0.67192429022082023 | 0.57880434782608692 | 0.83942963422194672 | 0.621897810218978 | 0.34405456040833338 | 0.88733566433566435 | +---------------------+---------------------+ --------------------+-------------------+---------------------+---------------------+
BigQuery DataFrames
Antes de testar esta amostra, siga as instruções de configuração dos BigQuery DataFrames no Guia de início rápido do BigQuery: como usar os BigQuery DataFrames. Para mais informações, consulte a documentação de referência do BigQuery DataFrames.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
As métricas de avaliação indicam uma boa performance do modelo, em particular,
o fato de que a
pontuação roc_auc
é maior que 0.8
.
Para mais informações sobre as métricas de avaliação, consulte Modelos de classificação.
Usar o modelo para prever classificações
SQL
Siga estas etapas para prever dados com o modelo:
No Console do Google Cloud, acesse a página BigQuery.
No Editor de consultas, cole a consulta a seguir e clique em Executar:
SELECT * FROM ML.PREDICT (MODEL `bqml_tutorial.tree_model`, ( SELECT * FROM `bqml_tutorial.input_data` WHERE dataframe = 'prediction' ) );
As primeiras colunas dos resultados vão ficar assim:
+---------------------------+--------------------------------------+-------------------------------------+ | predicted_income_bracket | predicted_income_bracket_probs.label | predicted_income_bracket_probs.prob | +---------------------------+--------------------------------------+-------------------------------------+ | <=50K | >50K | 0.05183430016040802 | +---------------------------+--------------------------------------+-------------------------------------+ | | <50K | 0.94816571474075317 | +---------------------------+--------------------------------------+-------------------------------------+ | <=50K | >50K | 0.00365859130397439 | +---------------------------+--------------------------------------+-------------------------------------+ | | <50K | 0.99634140729904175 | +---------------------------+--------------------------------------+-------------------------------------+ | <=50K | >50K | 0.037775970995426178 | +---------------------------+--------------------------------------+-------------------------------------+ | | <50K | 0.96222406625747681 | +---------------------------+--------------------------------------+-------------------------------------+
BigQuery DataFrames
Antes de testar esta amostra, siga as instruções de configuração dos BigQuery DataFrames no Guia de início rápido do BigQuery: como usar os BigQuery DataFrames. Para mais informações, consulte a documentação de referência do BigQuery DataFrames.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
O predicted_income_bracket
contém o valor previsto do modelo.
O predicted_income_bracket_probs.label
mostra os dois rótulos entre os quais o
modelo teve que escolher, e a coluna predicted_income_bracket_probs.prob
mostra a probabilidade de o rótulo fornecido ser o
correto.
Para mais informações sobre as colunas de saída, consulte Modelos de classificação.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
- exclua o projeto que você criou; ou
- Mantenha o projeto e exclua o conjunto de dados.
Excluir o conjunto de dados
A exclusão do seu projeto removerá todos os conjuntos de dados e tabelas no projeto. Caso prefira reutilizá-lo, exclua o conjunto de dados criado neste tutorial:
Se necessário, abra a página do BigQuery no console do Google Cloud.
Na navegação, clique no conjunto de dados bqml_tutorial criado.
Clique em Excluir conjunto de dados no lado direito da janela. Essa ação exclui o conjunto, a tabela e todos os dados.
Na caixa de diálogo Excluir conjunto de dados, confirme o comando de exclusão digitando o nome do seu conjunto de dados (
bqml_tutorial
). Em seguida, clique em Excluir.
Excluir o projeto
Para excluir o projeto:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
A seguir
- Saiba como criar um modelo de classificação de regressão logística.
- Para uma visão geral do BigQuery ML, consulte Introdução à IA e ao ML no BigQuery.