Olá! Sejam muito bem-vindos a este curso de modelagem preditiva, no qual vamos criar modelos de regressão utilizando SQL na poderosa ferramenta BigQuery. Neste curso, transformaremos dados em insights, o que será incrível. Estamos ansiosos para começar, mas antes disso, vamos nos apresentar.
Meu nome é Valkyria.
Audiodescrição: Valkyria é uma mulher branca, de olhos castanhos, cabelos loiros e ondulados na altura abaixo dos ombros. Ela veste uma blusa marrom e está em um dos estúdios da Alura.
Neste curso, aprenderemos a utilizar o BigQuery para criar modelos de regressão. Começaremos carregando os dados, explorando as informações disponíveis e extraindo insights a partir disso. Também aprenderemos a criar novas colunas e preparar um arquivo final enriquecido para, posteriormente, criar os modelos de machine learning (aprendizado de máquina).
Vamos começar testando algoritmos de regressão linear e, posteriormente, algoritmos baseados em árvores de decisão. Teremos esse processo completo e, ao final, aprenderemos como validar nosso modelo e realizar predições em dados de teste, simulando o mundo real.
Tudo isso será voltado para a área de logística, onde entenderemos como fazer previsões no tempo de entrega para otimizar operações da empresa e melhorar a experiência dos clientes. No final, conseguiremos construir um relatório usando o Looker Studio para apresentar o resultado final das previsões e mostrar todos os insights obtidos em relação às variáveis que afetam o tempo de entrega. Será interessante construir todo esse processo.
Para que possamos realizar isso, é importante que já tenhamos conhecimentos em SQL. Vamos começar?
Vamos dar início ao nosso projeto. Atuaremos como cientistas de dados para uma empresa de logística que realiza entregas de pedidos no mesmo dia em que a compra é efetuada. O objetivo é melhorar os processos operacionais e a experiência do cliente.
Imaginemos que uma pessoa faz uma compra e recebe uma estimativa do tempo de entrega. O ideal é que não haja atrasos e que o prazo seja cumprido. Neste curso, criaremos um modelo capaz de prever o tempo de entrega, permitindo que a empresa utilize essas previsões para fornecer estimativas precisas. Além disso, a empresa deseja entender quais fatores influenciam o tempo de entrega. Para isso, elaboraremos um relatório e analisaremos várias variáveis envolvidas no processo, possibilitando insights para melhorias.
Recebemos um arquivo CSV contendo informações de entregas passadas. A ideia é carregar esse arquivo, compreender as variáveis, realizar uma exploração e, posteriormente, construir um modelo.
Utilizaremos o Google Cloud, uma ferramenta eficaz para esse processo. Já estamos com o Google Cloud aberto. Para utilizar essa ferramenta, é necessário criar uma conta no Google. Já estamos logados. Utilizaremos uma parte do Google Cloud chamada Big Query, onde podemos carregar um arquivo em um banco de dados, analisar os dados e, em seguida, usá-los para modelagem e criação do modelo. É uma ferramenta completa para todo o processo.
Vamos começar. Na parte superior da página inicial do Google Cloud, à direita, encontramos o console. Clicamos nele, e ele está carregando. Pronto, carregou. Estamos logados com o nome Valkyrie Alencar. A conta já foi ativada e temos alguns créditos disponíveis. É importante destacar que o Google Cloud é uma ferramenta paga, mas ao criar uma conta pela primeira vez, são oferecidos créditos em reais para uso. Esses créditos são suficientes para desenvolver o projeto.
Para carregar os dados, precisamos criar um projeto. Na parte superior esquerda, há um projeto inicial chamado "My First Project". Clicamos nessa opção e criamos um novo projeto no canto superior direito. Ao clicar em "Novo projeto", podemos nomeá-lo. Vamos digitar projeto-BQ-ML-logística
. Após isso, clicamos na opção de criar. O novo projeto está sendo criado. Pronto, já foi criado e está tudo certo.
Como vamos carregar os dados para este projeto? Primeiramente, na parte superior esquerda, selecionamos o projeto que acabamos de criar. Clicamos em projeto, BQML logística. No menu lateral esquerdo, que possui três traços na parte superior, clicamos e, ao descer, encontramos a opção BigQuery. Clicamos nela.
Agora, temos um ambiente onde podemos subir nosso arquivo CSV, realizar consultas e análises. Como faremos isso? No lado esquerdo, vemos nosso projeto criado e, ao lado direito, há três pontos. Clicamos nesses três pontos e escolhemos a opção criar conjunto de dados. Ao clicar, surge uma nova janela para criar o conjunto, e precisamos nomeá-lo. Podemos chamá-lo de BQML, com "Dados" e "Logística" em maiúsculas.
Precisamos definir o tipo de local. Escolhemos a opção de região para usar a nuvem do Google Cloud. Entre as várias opções, escolhemos a mais barata: US-central1 (IOA). Clicamos nela. Em seguida, na opção em azul, criamos o conjunto de dados. Após o processo, fechamos a mensagem que aparece.
Com o conjunto de dados criado, podemos carregar uma tabela. Nos três pontos do lado direito, clicamos na opção criar tabela. Surge uma janela para carregar nossos dados. Na parte de origem, escolhemos a opção de upload para carregar nosso arquivo.
Selecionamos o arquivo. Caso se pergunte onde está o arquivo, haverá uma atividade de preparação de ambiente antes deste vídeo para fazer o download no computador e carregá-lo. Selecionamos o arquivo clicando em procurar, escolhemos o arquivo baixado e clicamos em abrir.
O arquivo está no formato CSV. O projeto e o conjunto de dados estão corretos. Precisamos nomear a tabela. Chamaremos a tabela de entregas. Definimos a opção do esquema para detectar automaticamente o nome e tipo das colunas. Clicamos em detectar automaticamente.
Na parte final, clicamos em criar tabela, em azul, no lado esquerdo inferior. A tabela está sendo carregada. Após o carregamento, a tabela aparece. Dentro do BQML dados logística, temos agora uma tabela chamada entrega. Ao clicar, vemos a tabela carregada.
Conseguimos carregar a tabela. Está tudo pronto para começarmos. No próximo vídeo, entenderemos quais colunas temos e os tipos de dados para iniciar o projeto. Até lá!
Carregamos nossa tabela, mas ainda não temos informações sobre esses dados, como quais colunas estão presentes e quais são os tipos de dados. Também não sabemos se há informações duplicadas ou dados ausentes. Portanto, é o momento de entender o arquivo que a empresa nos forneceu, para que possamos utilizá-lo posteriormente no processo de modelagem e na criação do nosso modelo para prever o tempo de entrega.
Para ampliar nossa janela e visualizar melhor a tabela criada, vamos ao menu Explorer, no lado esquerdo, e clicamos na seta na parte superior. Agora, conseguimos ampliar a visualização. Vamos à tabela entregas
, na parte de visualização, no centro da tela. Ao clicar em visualização, podemos ver cada coluna e as primeiras linhas.
Vamos verificar essas informações. Temos, inicialmente, o ID de pedido
, um código único para cada pedido. A segunda coluna contém anos de experiência
, que representa o tempo de experiência, em anos, da pessoa que fez a entrega. Em seguida, temos a classificação do agente
, que é a nota dada à pessoa que fez a entrega, provavelmente variando de 0 a 5. Também há colunas com coordenadas geográficas, como latitude e longitude da loja, ou seja, o local de origem da entrega, e latitude e longitude do local de entrega, ou seja, o endereço do cliente.
Além disso, temos dados temporais, como a data do pedido
, contendo ano, mês e dia, e a hora em que o pedido foi feito. Há também a hora de retirada
, indicando quando o pedido saiu do local de trabalho dos entregadores para a entrega. Outras informações incluem clima, tráfego, veículo usado, área da entrega, categoria do produto entregue e nosso alvo, que é o tempo de entrega que queremos prever no modelo de Machine Learning.
Podemos descobrir quantas informações temos observando no final da página, no canto inferior direito, que estamos visualizando de 1 até 200, mas o total é de 43.508. Há uma quantidade significativa de informações coletadas pela empresa. Notamos que, na hora do pedido, várias linhas estão com NAN
, indicando dados ausentes. A sigla NAN
significa Not a Number (não é um número), ou seja, falta esse valor. Em clima e tráfego, várias linhas estão com NU
, indicando dados nulos. Isso é importante para análise futura e verificação de quantas informações estão nulas.
Na parte de visualização, em detalhes, ao clicar, temos informações adicionais, como o ID da tabela, data de criação e última modificação. Descendo um pouco, vemos informações de armazenamento, já que trabalhamos em nuvem. Confirmamos que há 43.508 linhas e o total de bytes lógicos é 6,29 MB. Os bytes físicos atuais e totais estão zerados, pois ainda não fizemos consultas. Quando começarmos a fazer consultas, será exibido o uso em bytes.
Na parte de esquema, ao clicar, temos informações sobre o tipo de dado de cada coluna. Por exemplo, o ID do pedido
é do tipo string
, ou seja, texto. Anos de experiência do agente
é do tipo inteiro
, um número inteiro. A classificação do agente
, latitude e longitude são do tipo float
. A data
é do tipo data
, e o horário de retirada
é do tipo time
. Clima, tráfego, veículo, área e categoria do produto são strings
, dados categóricos. O tempo de entrega
é do tipo float
.
Podemos pensar, por exemplo, em quantas colunas temos aqui. Como são poucas informações, seria possível contar manualmente, mas imagine se fosse um arquivo muito grande, com muitas colunas. Como faríamos isso? Vamos checar da seguinte forma: na parte superior, ao lado da tabela entregas
, há um ícone de lupa para consultas. Ao clicar, podemos fazer consultas SQL e obter os resultados. Vamos começar a testar isso e fazer uma primeira consulta para verificar o número de colunas.
Inicialmente, é apresentada uma consulta como sugestão, mas não a utilizaremos. Vamos apagar tudo e digitar o seguinte: em caixa alta, SELECT
.
SELECT
Vamos aumentar o zoom para visualizar melhor. Para contar algo, utilizamos COUNT
. Abrimos parênteses e colocamos um asterisco para contar todas as colunas. Nomeamos isso como total_colunas
.
SELECT COUNT(*) AS total_colunas
Na próxima linha, precisamos especificar de onde queremos fazer essa contagem. Colocamos FROM
e, entre crases, inserimos o nome do nosso projeto. Para isso, voltamos ao Explorer, clicamos na seta, acessamos nosso projeto em "BKML dados logística", clicamos nos três pontos e copiamos o ID. Fechamos a visualização do Explorer e colamos o ID. Em seguida, adicionamos um ponto e utilizamos o information_schema
do BigQuery, que nos permite coletar informações sobre as tabelas. Digitamos INFORMATION_SCHEMA.COLUMNS
.
FROM `projeto-bqml-logistica-454114.bqmlDadosLogistica.INFORMATION_SCHEMA.COLUMNS`
Na próxima linha, especificamos a tabela na qual queremos contar o número de colunas. Colocamos WHERE
e table_name = 'entregas'
. Por fim, adicionamos um ponto e vírgula para executar a consulta.
WHERE table_name = 'entregas';
Selecionamos e executamos. O resultado mostra que o total de colunas é 16.
Há algo mais que podemos fazer neste momento. Temos vários IDs de pedidos, e surge a dúvida: há algum pedido duplicado? Muitas vezes, é comum haver duplicações em datasets. Isso é importante, pois pode atrapalhar um modelo de machine learning futuramente, com informações repetidas. Podemos verificar se há duplicações.
Para isso, vamos fazer outra consulta. Digitamos SELECT
em caixa alta.
SELECT
Vamos fazer uma contagem dos IDs de pedido. Colocamos COUNT
em caixa alta, abrimos parênteses e, para contar números distintos, utilizamos DISTINCT
. Especificamos a coluna id_pedido
.
COUNT(DISTINCT ID_pedido)
A lógica é contar todos os IDs de pedido distintos. Se essa contagem for menor que a contagem total de IDs, significa que há duplicações. Nomeamos isso como tem_duplicados
.
< COUNT(*) AS tem_duplicados
Precisamos também colocar FROM
. Podemos copiar o FROM
da consulta anterior, colar e adicionar o nome do projeto e a tabela entregas
. Fechamos com crase e ponto e vírgula.
FROM `projeto-bqml-logistica-454114.bqmlDadosLogistica.entregas`;
Selecionamos e executamos. O resultado foi falso, indicando que não há duplicações. Portanto, não precisamos tratar dados duplicados.
No próximo vídeo, trabalharemos com colunas que contêm dados nulos. Faremos uma contagem desses dados e verificaremos se é necessário algum tratamento antes de prosseguir com as análises. Até lá!
O curso BigQuery ML: criando modelos de regressão possui 184 minutos de vídeos, em um total de 46 atividades. Gostou? Conheça nossos outros cursos de Machine Learning em Data Science, ou leia nossos artigos de Data Science.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS (1 ANO) e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS (1 ANO) e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO (1 ANO) e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Brinde aniversário Alura
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.
Enquanto durarem os estoques