Alura > Cursos de Data Science > Cursos de Data Science > Conteúdos de Data Science > Primeiras aulas do curso Projeto ciência de dados: exploração, modelagem e apresentação

Projeto ciência de dados: exploração, modelagem e apresentação

Configurando o ambiente e analisando os dados - Apresentação

Apresentando a instrutora e a audiodescrição

Olá! Eu sou a Letícia, sou a instrutora aqui na Alura.

Audiodescrição: Letícia é uma pessoa branca, de olhos castanho-escuros e cabelo castanho-escuro, um pouco abaixo dos ombros. Veste uma camiseta marrom-escura; atrás há uma iluminação azul e rosa, e à sua frente, à esquerda, há um microfone também com iluminação rosa.

Apresentando a proposta do curso e o conjunto de dados

Qual é a proposta deste curso? Seguiremos uma abordagem um pouco diferente: não entraremos profundamente nos conceitos; em vez disso, vamos construir um projeto prático utilizando todos os conhecimentos que vimos no nível 1, aplicando-os a um cenário real.

Ao passarmos para a tela, temos um site aberto que reúne um repositório de Machine Learning (aprendizado de máquina) com diversos conjuntos de dados. Abrimos o conjunto de dados Banking Marketing, que será utilizado para o problema de negócio. Você pode baixá-lo e começar a explorar esses dados; porém, todos os arquivos que utilizarmos ou baixarmos estarão disponíveis no repositório no GitHub, que você pode consultar ao longo do curso.

Aqui também podemos ver as variáveis presentes nessa base de dados: escolaridade, estado civil, idade, entre outras. Nós vamos explorar isso melhor na próxima aula.

Contextualizando o cenário e os objetivos do projeto

Qual é o cenário deste projeto? Trabalhamos com informações de um banco português relativas a campanhas de telemarketing para oferecer a clientes um depósito a prazo, que é essencialmente um investimento.

Como uma campanha envolve múltiplas ligações, o objetivo do banco — e também o objetivo deste projeto — é aumentar a eficiência das ligações, identificando quais clientes têm maior probabilidade de aceitar o depósito. Isso é importante porque, supondo uma base de 45 milhões de clientes, ligar para todas as pessoas é caro e demanda muito tempo.

Com um modelo de Machine Learning (Aprendizado de Máquina), o banco deseja priorizar os clientes com maior probabilidade de dizer “sim”, reduzir o custo operacional e elevar a taxa de conversão. Essa será nossa missão neste projeto.

Definindo o modelo e próximos passos

Para avançar, vamos explorar os dados e compreender seu conteúdo. Neste projeto, construiremos um modelo de classificação. Nos dados, há informações dos clientes e uma variável que será nossa variável-alvo: ela indica se o cliente contratou ou não o depósito. Portanto, trata-se de um problema de classificação.

Na próxima aula, vamos aprofundar a exploração desses dados. Vamos em frente!

Configurando o ambiente e analisando os dados - Primeiros Passos Ambiente, Git e Cloud

Apresentando o fluxo do projeto

Vamos simular um cenário real. Antes de iniciarmos as análises, precisamos criar nosso ambiente de trabalho. Para isso, elaboramos um fluxograma com as etapas que vamos aplicar.

Utilizaremos a AWS para armazenar nossos dados. No Amazon S3, vamos armazenar os dados apresentados anteriormente. Em seguida, conectaremos um IDE (ambiente de desenvolvimento integrado) a esses dados armazenados na AWS. Para isso, usaremos o Cursor para realizar toda a parte de análise e também a de modelagem. Depois de termos o modelo pronto e alguns outros componentes, poderemos salvar esses artefatos novamente no S3. Por fim, para analisar os dados no dia a dia e tomar decisões, usaremos o Streamlit como dashboard (painel) para revisar o desempenho do modelo, a tabela de clientes que devemos priorizar e outros aspectos que veremos mais adiante. Portanto, usaremos o Streamlit para essa visualização.

Esse é o fluxo que temos. Antes de começar o projeto, precisamos criar alguns itens.

Criando o repositório no github

O primeiro passo é acessar o GitHub. Vamos entrar na nossa conta e ir até a aba de repositórios, pois criaremos um repositório para trabalhar. Na interface do GitHub, vamos clicar em New. Daremos um nome ao repositório: Projeto Alura. Esse nome aparecerá em vermelho se o repositório já existir. Podemos escolher a visibilidade (pública ou privada) e adicionar um README. Vamos selecionar a opção “Common” e, em seguida, clicar em Create repository.

Agora já estamos dentro do repositório. Temos um arquivo README e também “Requirements”. Isso foi adicionado posteriormente: é a pasta "Requirements" com um arquivo que utilizaremos para instalar todas as dependências mais adiante. Podemos usar o botão verde Code, que exibe um link para clonarmos o repositório. Vamos guardar esse link para utilizá-lo na próxima etapa.

Clonando o repositório com o github desktop

Outra ferramenta que recomendamos é o GitHub Desktop. Na aula de GitHub, vimos a parte de commits, criação de branches e versionamento de código usando Git. Podemos fazer esse fluxo pelo terminal ou utilizar uma ferramenta gráfica. O GitHub Desktop facilita bastante, pois oferece uma interface que agiliza o processo. Recomendamos fazer o download (baixar) em desktop.github.com. Na página, basta selecionar a opção de download (baixar) para macOS ou Windows e instalar.

Após instalar, vamos abrir o GitHub Desktop. No topo, há opções, incluindo a de clonar o repositório. Para isso, clicamos na seta, depois em Add e em Clone repository. Podemos buscar o repositório que criamos ou usar o link que salvamos anteriormente, colar ali e clonar na nossa máquina. Depois do clone, podemos verificar onde o projeto foi salvo. Clicando com o botão direito, há uma opção para exibir o caminho na pasta (no macOS, por exemplo, para revelar no Finder). No exemplo, o repositório ficou dentro da pasta "dev" no desktop.

Configurando usuário e credenciais no iam

Com o repositório clonado, o próximo passo, antes de irmos ao Cursor, é configurar nosso bucket na AWS. No curso de AWS, vimos como criar uma conta e configurar o ambiente. Aqui, já estamos no console. Se ainda não houver uma conta, recomendamos criá-la. Ao entrar, veremos as seções mais acessadas. Inicialmente, vamos ao IAM. Podemos pesquisar por IAM na barra de busca, clicar em IAM e criar um novo usuário, que será utilizado para conectarmos o Cursor à AWS.

No IAM, vamos em IAM users e criamos um novo usuário. Daremos o nome Alura Projeto e clicaremos em Next. Podemos adicionar políticas diretamente. Vamos selecionar S3 Full. Como vimos em aulas anteriores, isso não é uma boa prática; o ideal seria especificar exatamente as permissões necessárias. No entanto, para simplificar nosso processo nesta aula, adicionaremos Amazon S3 Full Access. Em seguida, clicamos em Next e Create user.

Após criar a pessoa usuária, clicamos nela (Alura Projeto). Em seguida, acessamos a opção em inglês do console, Security and Credentials (Segurança e credenciais), onde existe a opção para criar uma access key (chave de acesso). Precisaremos dessa access key para acessar o Amazon S3 a partir da nossa IDE (ambiente de desenvolvimento integrado), no caso, o Cursor. Clicamos em Create Access Key (criar chave de acesso), selecionamos a opção Command Line (linha de comando) para acessar via CLI (interface de linha de comando) e avançamos em Confirm and Next (confirmar e avançar). Depois, clicamos em Create (criar).

Nesse momento, o console exibe duas informações muito importantes que precisam ser armazenadas com segurança e não devem ser compartilhadas:

Ambas serão utilizadas no Cursor mais adiante.

Criando bucket no s3 e preparando o projeto no cursor

Agora, vamos criar um bucket (repositório de objetos) para armazenar os dados. Acessamos o serviço S3, clicamos em Create Bucket e informamos um nome global único. Por exemplo: Alura Projeto Banco. Verificamos se o nome está disponível, mantemos as demais opções no padrão e confirmamos em Create. Com o bucket criado, acessamos sua página. O próximo passo é enviar os dados ou criar uma estrutura de pastas. Neste projeto, criamos a pasta "RAW", onde armazenaremos os arquivos originais da campanha de marketing, e outra pasta "models", onde, nas últimas aulas, guardaremos os modelos que formos construindo. Inicialmente, deixamos essas duas pastas criadas. Em "RAW", podemos enviar os arquivos. No nosso caso, já existe um bucket previamente criado (Banco Marketing Alura), no qual estão os arquivos em "RAW" baixados do site mencionado no início.

Com o bucket criado e o repositório configurado, abrimos o Cursor. Na interface inicial, clicamos em Open Project e localizamos a pasta que clonamos na máquina, em "Dev" > "projeto Alura". Ao abrir, visualizamos os arquivos README.md e requirements.txt.

Definindo dependências no requirements.txt

Recomendamos, como primeiro passo no Cursor, garantir a criação do arquivo requirements.txt. Podemos consultar o repositório do curso no GitHub e copiar as dependências que utilizaremos no projeto. Entre as bibliotecas necessárias, temos:

Para materializar isso, um exemplo de conteúdo de requirements.txt que podemos usar no projeto é o seguinte:

ipykernel==6.29.5 # para usar o jupyter notebook
boto3==1.43.2 # para usar o AWS S3
plotly==6.7.0
imbalanced-learn==0.13.0
lazypredict==0.3.0
lightgbm==4.6.0
joblib==1.5.0
streamlit==1.45.0
pandas==2.2.3
numpy==2.4.3
scikit-learn==1.6.1
nbformat==4.2.0 # necessario para o plotly funcionar no jupyter notebook

Esse arquivo inclui as bibliotecas citadas (ipykernel, boto3, nbformat, Plotly, Streamlit, Pandas e NumPy), além de outras que utilizaremos ao longo do projeto para modelagem e experimentação.

Criando ambiente virtual e instalando dependências

Depois do requirements.txt, configuramos o ambiente do projeto criando um ambiente virtual. Abrimos o terminal dentro do diretório do projeto e executamos o comando apropriado para criar um ambiente virtual com Python, nomeando-o .venv.

Execute o comando abaixo para criar o ambiente virtual:

python3 -m venv .venv

Em seguida, ativamos esse ambiente virtual com o comando correspondente ao sistema operacional. No macOS ou Linux, por exemplo, usamos:

source .venv/bin/activate

Após a ativação, instalamos as bibliotecas necessárias utilizando o pip para ler e instalar as dependências listadas no arquivo requirements.txt. Se ocorrer um erro por esquecer a letra “s” no nome do arquivo requirements.txt, corrigimos o nome e executamos novamente.

Primeiro, o comando incorreto (resultará em erro por causa do nome do arquivo):

pip install -r requirement.txt

Em seguida, o comando correto:

pip install -r requirements.txt

Ao final, todas as dependências do requirements.txt estarão instaladas.

Instalando e configurando o aws cli

Na sequência, instalamos o AWS CLI (interface de linha de comando da AWS), que será a forma de nos conectarmos ao S3. No macOS, podemos instalar com o gerenciador de pacotes Homebrew. No Windows, podemos utilizar o Chocolatey, ou fazer a instalação diretamente pelo link oficial do AWS CLI (que estará na descrição do projeto). Tanto o Homebrew quanto o Chocolatey são gerenciadores de pacotes que facilitam a instalação de ferramentas via terminal.

Como exemplo no macOS com Homebrew, podemos executar:

brew install awscli

Com o AWS CLI instalado, conectamos ao ambiente da AWS utilizando as chaves salvas anteriormente. No terminal, executamos o assistente de configuração (aws configure) e informamos:

Podemos manter as demais configurações padrão pressionando a tecla Enter quando solicitado. O comando para iniciar essa configuração é:

aws configure

Concluída essa etapa, já podemos acessar os recursos da AWS com nossa chave de acesso.

Habilitando recursos de ia no cursor e encaminhando próximos passos

A última configuração necessária no Cursor é a de IA para auxiliar na produtividade durante a escrita de código. No macOS, pressionamos Command + Shift + P para abrir a paleta de comandos. No Cursor, existe o recurso chamado Cursor Tab (aba do Cursor), que oferece autocomplete (autocompletar) por meio de IA enquanto escrevemos. Essa ferramenta identifica o que pretendemos fazer a partir das linhas de código e também consegue interpretar comentários para sugerir implementações, frequentemente completando trechos inteiros. Haverá um link na descrição com mais detalhes sobre essas funcionalidades. Recomendamos habilitar esse recurso para facilitar significativamente a produção e a criação de código.

Com todo o ambiente configurado, na próxima aula começaremos criando um Jupyter Notebook (caderno Jupyter) e conectaremos nosso ambiente ao S3 para trazer os dados. Assim, poderemos iniciar efetivamente a etapa de análise de dados.

Configurando o ambiente e analisando os dados - Conectando Python ao AWS S3

Evitando versionar arquivos da máquina virtual

Agora que já configuramos todo o nosso ambiente, é hora de começar a trabalhar. Estamos dentro do nosso projeto e, antes de criar um Jupyter Notebook (caderno Jupyter), vamos abrir o GitHub Desktop (aplicativo de desktop do GitHub). Observamos que ele trouxe para o aplicativo todos os arquivos da nossa máquina virtual, tudo o que foi feito lá dentro. Não queremos versionar esses arquivos; queremos montar isso apenas localmente na nossa máquina.

Para evitar que esses itens apareçam no controle de versão, vamos adicionar um arquivo .gitignore e incluir nele o diretório .venv. Assim, esses arquivos serão ignorados. Para isso, adicione a seguinte linha ao .gitignore:

.venv/

Ao retornar ao GitHub Desktop (aplicativo de desktop do GitHub), confirmamos que eles desapareceram da lista de alterações.

Preparando o notebook e importando boto3

Em seguida, vamos criar um arquivo de Notebook (caderno) chamado banco-marketing.ipynb. Vamos adicionar o código; no nosso caso, já aparece o ambiente Python 3.12.9 selecionado. Se não aparecer, veremos a opção de interface "Select Kernel" (selecionar núcleo), na qual podemos escolher a versão de Python que desejamos utilizar.

Vamos começar importando o boto3, que é o SDK (kit de desenvolvimento de software) da AWS (Serviços Web da Amazon) para Python. Executamos essa célula:

import boto3

Criando o cliente S3 e listando buckets

Em seguida, movemos para a próxima célula para criar um cliente S3. Aqui entra o recurso de preenchimento automático do editor, isto é, o recurso de autocomplete (preenchimento automático): ao escrever S3, o editor já sugere a criação do cliente para nós. Basta pressionar a tecla "Tab" para aceitar a sugestão e seguir para a próxima linha.

s3 = boto3.client('s3')

Agora vamos chamar a API (interface de programação de aplicações) para listar os buckets (repositórios do S3). Primeiro, vamos atribuir a resposta à variável response chamando o método list_buckets do cliente S3:

response = s3.list_buckets()

Em seguida, vamos percorrer response['Buckets'] com um for para imprimir e verificar o que há dentro:

for bucket in response['Buckets']:
    print(bucket['Name'])

Ao executar, visualizamos os buckets (repositórios do S3) da nossa conta. Entre eles, está o bank-marketing-alura, que foi criado com os dados que utilizaremos.

Listando objetos do bucket de dados

Vamos adicionar uma nova linha de código para listar os objetos (arquivos) dentro de um bucket (repositório do S3) específico. Vamos chamar list_objects_v2 no cliente S3, informando o bucket (repositório do S3) bank-marketing-alura. Primeiro, queremos apenas visualizar o conteúdo:

response = s3.list_objects_v2(Bucket='bank-marketing-alura')
for obj in response['Contents']:
    print(obj['Key'])

Identificamos a pasta "raw", que contém os arquivos bank-full e additionalfull. Neste curso, utilizaremos o bank-full. Também há a pasta "models".

Carregando dados do S3 com pandas

Confirmado que a listagem funcionou, agora queremos, de fato, buscar esses dados e armazená-los em uma variável para utilizarmos nas análises. Para isso, vamos importar pandas como pd e inserir uma quebra de linha:

import pandas as pd

Em seguida, vamos criar uma variável (por exemplo, obj) e utilizar o método get_object do cliente S3, informando os parâmetros Bucket e Key. A Key será o caminho do arquivo CSV que queremos ler. O editor já sugere automaticamente esses parâmetros, o que facilita a chamada. Com isso, traremos os dados do CSV e poderemos trabalhar com eles nas próximas etapas:

obj = s3.get_object(Bucket='bank-marketing-alura', Key='raw/bank-full.csv')

Vamos pressionar "Enter" aqui. Em seguida, vamos criar a variável dados e utilizar pandas, com pd.read_csv (o ambiente já sugeriu), para obter o body (corpo). Neste primeiro momento, faremos a leitura sem especificar o separador, apenas para verificar se os dados já vêm formatados. Depois, executamos dados.head():

dados = pd.read_csv(obj['Body'])
dados.head()

Ajustando a leitura e inspecionando o dataframe

Observamos que os dados foram carregados sem formatação adequada. Portanto, voltamos e adicionamos um separador com o parâmetro sep, e executamos novamente. Agora a tabela foi carregada e está corretamente formatada:

dados = pd.read_csv(obj['Body'], sep=';')

Para revisar melhor as colunas, executamos dados.info():

dados.info()

Descrevendo as variáveis do conjunto de dados

As colunas estão em inglês. O que elas representam:

Também há informações de contato e de campanha:

Por fim, temos a variável-alvo target, que é o que vamos prever com nosso modelo de classificação. Ela indica se a pessoa converteu, isto é, se aceitou o depósito ou não.

Sugerindo documentação e próximos passos

Toda essa descrição que mencionamos estará no repositório da aula: o que significa cada coluna estará detalhado lá. Uma sugestão: se não se sente confortável com o inglês, é possível traduzir e renomear as colunas para o português, o que pode facilitar a leitura.

Nas próximas aulas, começaremos a explorar mais esses dados, entender se há valores estranhos que precisemos remover ou tratar de alguma forma, e identificar quais são as categorias com maior taxa de conversão, entre outros aspectos. Iniciaremos essa parte de análise de todas as variáveis a partir da próxima aula.

Sobre o curso Projeto ciência de dados: exploração, modelagem e apresentação

O curso Projeto ciência de dados: exploração, modelagem e apresentação possui 304 minutos de vídeos, em um total de 48 atividades. Gostou? Conheça nossos outros cursos de Data Science 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:

Aprenda Data Science acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas