Neste tutorial, você vai aprender a usar um modelo de classificador de árvores otimizadas 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 tarefas a seguir:
- Criar um modelo de árvores otimizadas para prever a faixa de renda dos participantes 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, usamos componentes faturáveis do Google Cloud, incluindo:
- 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
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify 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
Ative a API BigQuery.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.
Permissões exigidas
Para criar o conjunto de dados, é preciso ter a permissão de IAM
bigquery.datasets.create.Para criar o modelo, você precisa das seguintes permissões:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateData
Para executar a inferência, você precisa das seguintes permissões:
bigquery.models.getDatabigquery.jobs.create
Para mais informações sobre os papéis e as permissões do IAM no BigQuery, consulte Introdução ao IAM.
crie um conjunto de dados
Para criar um conjunto de dados do BigQuery, selecione uma das seguintes opções:Console
No console do Google Cloud , acesse a página BigQuery.
No painel à esquerda, clique em Explorer:

Se o painel esquerdo não aparecer, clique em Expandir painel esquerdo para abrir.
Em Explorer, expanda seu projeto e clique em Conjuntos de dados.
Na página Conjuntos de dados, clique em Criar conjunto de dados.
No painel Criar conjunto de dados, faça o seguinte:
Para o código do conjunto de dados, insira
bqml_tutorial.Em Local dos dados, selecione US.
Não altere as outras configurações padrão.
Clique em Criar conjunto de dados.
bq
Para criar um conjunto de dados, use o
comando bq mk --dataset.
Crie um conjunto de dados chamado
bqml_tutorialcom o local dos dados definido comoUS:bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Confirme se o conjunto de dados foi criado:
bq ls
API
Chame o método datasets.insert com um recurso de conjunto de dados definido:
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
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 o ADC para um ambiente de desenvolvimento local.
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 está incluída nos dados de treinamento porque as colunas education e education_num expressam o grau de escolaridade do entrevistado em formatos diferentes.
Separe 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 à esquerda, clique em Explorer:

Se o painel esquerdo não aparecer, clique em Expandir painel esquerdo para abrir.
No painel Explorador, pesquise o conjunto de dados
bqml_tutorial.Clique no conjunto de dados e em Visão geral > Tabelas.
Clique na visualização
input_datapara abrir o painel de informações. O esquema de visualização aparece na guia Esquema.
BigQuery DataFrames
Crie um DataFrame chamado input_data. Você usará input_data posteriormente 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 o ADC para um ambiente de desenvolvimento local.
Criar o modelo de árvores otimizadas
Crie um modelo de árvores otimizadas para prever a faixa de renda dos entrevistados do censo e treine-o 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_modelpoderá ser acessado pelo painel Explorer. Como a consulta usa uma instruçãoCREATE MODELpara criar um modelo, não é possível ver os resultados dela.
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 o ADC 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 o ADC para um ambiente de desenvolvimento local.
As métricas de avaliação indicam um bom desempenho do modelo, principalmente 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 Saída.
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 serão semelhantes a estas:
+---------------------------+--------------------------------------+-------------------------------------+ | 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 o ADC 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 consoleGoogle 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:
- No console Google Cloud , acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
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.