Projeto de Ciência de Dados desenvolvido em Python utilizando Pandas, Scikit-Learn e Jupyter Notebook para análise exploratória de dados e construção de modelos de Regressão Linear capazes de estimar um indicador relacionado ao diagnóstico de diabetes a partir de exames clínicos.
O projeto apresenta todo o fluxo de um problema de Machine Learning, desde a preparação dos dados até a avaliação dos modelos.
- Importação e tratamento de dados.
- Análise exploratória (EDA).
- Limpeza e preparação do conjunto de dados.
- Codificação de variáveis categóricas (One-Hot Encoding).
- Engenharia de atributos (cálculo do IMC).
- Visualização de correlações.
- Construção de modelos de Regressão Linear.
- Avaliação dos modelos utilizando métricas estatísticas.
- Comparação entre diferentes abordagens de modelagem.
| Tecnologia | Finalidade |
|---|---|
| Python | Linguagem principal |
| Jupyter Notebook | Desenvolvimento do projeto |
| Pandas | Manipulação de dados |
| Matplotlib | Visualização gráfica |
| Seaborn | Visualização estatística |
| Scikit-Learn | Modelagem e avaliação de Machine Learning |
.
├── datasets/
│ └── exame_diabetes.csv
├── modelo_diabetes.ipynb
├── requirements.txt
└── README.md
| Arquivo | Descrição |
|---|---|
modelo_diabetes.ipynb |
Notebook contendo todo o fluxo de análise e modelagem |
datasets/exame_diabetes.csv |
Base de dados utilizada no treinamento |
requirements.txt |
Dependências do projeto |
Antes de executar o projeto, instale:
- Python 3.9 ou superior
- pip
- Jupyter Notebook ou JupyterLab (recomendado)
Clone o repositório:
git clone <URL_DO_REPOSITORIO>Acesse a pasta do projeto:
cd scikit-learn-modelCrie um ambiente virtual (opcional, porém recomendado):
python -m venv venv
source venv/bin/activatepython -m venv venv
venv\Scripts\activateInstale as dependências:
pip install -r requirements.txtInicie o Jupyter Notebook:
jupyter notebookou
jupyter labAbra o arquivo:
modelo_diabetes.ipynb
Execute as células sequencialmente para reproduzir toda a análise.
O notebook segue as seguintes etapas:
- Importação das bibliotecas.
- Carregamento da base de dados.
- Exploração inicial dos dados.
- Tratamento dos atributos.
- Conversão da variável categórica
generoem variáveis numéricas. - Análise de correlação.
- Visualização gráfica das variáveis.
- Criação da feature IMC.
- Novo estudo de correlação.
- Construção de dois modelos de Regressão Linear.
- Avaliação utilizando métricas estatísticas.
O projeto compara dois modelos distintos.
Utiliza todas as variáveis disponíveis (exceto IMC).
Características:
- Regressão Linear
- Divisão treino/teste
- Avaliação por R²
- Avaliação por MAE
Utiliza apenas a feature criada IMC como variável explicativa.
Também são avaliados:
- Coeficiente angular
- Intercepto
- R²
- MAE
Além disso, é exibida a reta de regressão.
O projeto utiliza:
| Métrica | Objetivo |
|---|---|
| R² Score | Medir a qualidade do ajuste do modelo |
| MAE (Mean Absolute Error) | Medir o erro médio absoluto das previsões |
Não foram encontrados testes automatizados.
O conjunto de dados está localizado em:
datasets/exame_diabetes.csv
Entre os atributos identificados estão:
- Peso
- Altura
- Gênero
- Resultado
- Identificador do paciente
Durante o pré-processamento:
- a coluna
id_pacienteé removida; generoé convertido via One-Hot Encoding;- é criada a variável derivada IMC.
O projeto não utiliza variáveis de ambiente.
As bibliotecas utilizadas estão definidas no requirements.txt.
Entre elas:
- pandas
- matplotlib
- seaborn
- scikit-learn
- Implementar novos algoritmos de Machine Learning (Random Forest, XGBoost, SVM, etc.).
- Adicionar validação cruzada (Cross Validation).
- Implementar Pipeline do Scikit-Learn.
- Normalizar e padronizar os dados.
- Comparar diferentes modelos de regressão.
- Persistir o modelo treinado com
joblib. - Criar uma API utilizando Flask ou FastAPI para servir o modelo.
- Adicionar testes automatizados para o pipeline de Machine Learning.
- Criar notebooks separados para EDA e treinamento.