Bootcamp de Data Science realizado pela Stack de 18 a 22 de outubro
- O projeto do bootcamp foi sobre o
Human Resource Analytics
Entendimento do problema
-
Quais fatores influencim para um colaborador deixar a empresa?
- Pessoas satisfeitas?
- Ambiente de trabalho?
- CargomDepartamento ...
- Salário?
- Tempo na empresa?
-
Podemos nos antecipar e saber se um determinado colaborador vai sair da empresa?
- Desempenho do colaborador.
- Carga de trabalho
-
Como reter pessoas?
-
Como diminuir o turnover?
- Foi usado para configura o ambiente, usando o
Mysql,MinioeAirflow
- O mysql foi usado apr armazena os dados extraidos de outras fontes
- Foi usado como bucket, para todos os dados resultantes do processo de
ETL
- Nesse projeto foi usando a liguagem Python
- Foi usado como orquestrador, para orquestra o processo de ETL, nesse foi definidos as dags(script) que fizeram todo os processamentos nos dados
- Foi usado para criar os modelos de machine learning
- Foi usado para encontra o melhor modelos de machine learning
- Foi usado para mostra o resultado final do modelo de classificação, criação do Data App
-
Faça download do Anaconda no site: https://www.anaconda.com/products/individual#Downloads
-
Instalar o Docker Desktop no Windows ou no Linux
https://www.docker.com/get-started
-
Faça download do Visual Studio code
C:\bootcampds
/home//bootcampds
Se estiver usando Windows abra o Powershell e digite:
Crie o container do mysql habilitando a porta 3307:
docker run --name mysqlbd1 -e MYSQL_ROOT_PASSWORD=bootcamp -p "3307:3306" -d mysql
Teste o acesso ao banco de dados usando o Visual Studio Code:
Abra o Visual Studio Code e instale a extensão: Database Client
Teste o acesso ao banco de dados Mysql:
Coloque as configurações:
Host: 127.0.0.1
Username: root
Port: 3307
Password: bootcamp
Dentro do diretório bootcampds crie o diretório datalake.
Se estiver usando Windows abra o terminal do Powershell e execute o comando:
docker run -d -p 9000:9000 -p 9001:9001 -v "$PWD/datalake:/data" minio/minio server /data --console-address ":9001"
Teste o acesso ao Minio:
Abra o browser e digite: http://localhost:9001/login
username: minioadmin
password: minioadmin
-
Dentro do diretório bootcampds crie o diretório airflow.
-
Navegue até o diretório airflow e crie o diretório dags.
-
Faça download da imagem e execute o container do Apache Airflow
3a. Se estiver usando Windows abra o terminal do Powershell e execute o comando:
docker run -d -p 8080:8080 -v "$PWD/airflow/dags:/opt/airflow/dags/" --entrypoint=/bin/bash --name airflow apache/airflow:2.1.1-python3.8 -c '(airflow db init && airflow users create --username admin --password bootcamp --firstname Felipe --lastname Lastname --role Admin --email admin@example.org); airflow webserver & airflow scheduler'3b. Instale as bibliotecas necessárias para o ambiente:
Execute o comando abaixo para se conectar ao container do airflow:
docker container exec -it airflow bashEm seguida instale as bibliotecas:
pip install pymysqlxlrdopenpyxl minio3c. Se não der nenhum erro, acesse a interface web do Apache Airflow com o endereço (Aguarde uns 5 minutos antes de abrir o terminal):
https://localhost:8080Faça o login de acesso ao Apache Airflow
Login: admin
Senha: bootcamp
Clique em Admin >> Variables
Crie as seguintes variáveis:
data_lake_server = 172.17.0.4:9000 data_lake_login = minioadmin data_lake_password = minioadmin
database_server = 172.17.0.3 ( Use o comando inspect para descobrir o ip do container: docker container inspect mysqlbd1 - localizar o atributo IPAddress) database_login = root database_password = bootcamp database_name = employees
As variáveis criadas devem ficar como:
-
Inicie o container do Minio com o comando:
-
Abra o Docker Desktop para iniciar o docker engine
-
Abra o Powershell (Windows) e execute o comando abaixo para iniciar o container do Minio:
docker container start <nome-do-container> -
Em seguida acesse o console do minio no endereço: http://localhost:9001/login
-
Crie os buckets landing, processing e curated como na imagem a seguir:
-
Clique em Buckets em seguida clique em create bucket
-
Após criar os buckets clique no bucket landing e crie a pasta: performance-evaluation em seguida clique em Upload e carregue o arquivo: employee_performance_evaluation.json Veja a imagem abaixo:
-
Clique no bucket landing
-
Crie outra pasta chamada working-hours e faça upload dos arquivos .xlsx veja como fica na imagem abaixo:
-
Ao clicar no bucket landing ficamos como:
-
-
Abra o Docker Desktop para iniciar o docker engine
-
Abra o console do Powershell (Windows) ou o terminal linux e execute o comando abaixo para iniciar o container do mysql:
docker container start mysqlbd1 -
Em seguida abra o Visual Studio Code para carregar o arquivo .sql para dar carga no banco de dados:
-
Clique com o botão direito do mouse na conexão como mostrado na imagem abaixo
-
Escolha a opção Import Sql
-
Aguarde o processo de importação. Após importar clique em atualizar a conexão para visualizar o banco de dados employees recém criado. Veja imagem abaixo:
Abrindo o Jupyter Notebook
-
Abra o Anaconda Navigator. Se estiver no Windows pesquise no menu iniciar "Anaconda Navigator"
-
Clique em launch para abrir o jupyter notebook
-
Ao abrir navegue até o diretorio criado para o bootcamp, por exemplo: bootcampds
-
Deverá conter a estrutura de diretórios como a seguir:
-
Clique no diretório notebooks, deverá conter o notebook modelagem_dados.ipynb
-
Descompacte os arquivos .py dentro do seu diretório usado no bootcamp, exemplo C:\Felipe\bootcampds ou /home/felipe/bootcamps
-
Mova os arquivos .py para o diretório airflow/dags como na imagem abaixo:
-
Atenção: Certifique que todos os arquivos estão dentro do diretório airflow/dags
-
Abra o console do Powershell (Windows) ou o terminal linux e execute o comando abaixo para iniciar o container do mysql:
docker container start airflow -
Aguarde uns 5 minutos e acesse o console do airflow no endereço: http://localhost:8080/
-
Faça o login com usuário admin e a senha bootcamp.
-
Ao clicar em Dags deve aparecer as dags criadas como na imagem abaixo:
- Atenção: Antes de executar as dags verifique se o ip do mysql ou do minio alterou.
- Para verificar use o comando:
docker container inspect mysqlbd1e visualize o campo IP Address
As dags são scripts python que vão fazer o processamento dos dados, no final desse processo cada dags vai gera o arquivo
com os dados processados.
Com esses dados vamos fazer uma Análise Exploratória de Dados e depois vamos construir de um modelo de classifição usando machine learning
Esse modelo vai ter como entradas as features satisfaction, evaluation, averageMonthlyHours, yearsAtCompany e classe turnover que é a
variavel de predição, que indica se o funcionario vai deixa a empresa
- Fazendo a Modelagem de dados
- A modelagem foi feita antes das dags, as dags são baseadas nela
- Fazendo Análise Exploratória de Dados
- Criando modelo: Machine learning
streamlit run app.py
















