-
Coleta de Dados: O dataset utilizado neste projeto pode ser encontrado na seguinte publicação na plataforma Kaggle;
-
Definição do Problema: Neste dataset estão contidos os dados de alunos, de seus ambientes de estudo e de seus respectivos desempenhos em um exame. (Os dados deste dataset foram gerados sinteticamente para fins de análise exploratória de dados, conforme informado pelo autor na publicação anteriormente mencionada). A partir desses dados, o modelo neste projeto produzido visa decompor quais são as contribuições dos hábitos de rotina e do ambiente de convívio no desempenho acadêmico de alunos;
-
Análise Exploratória de Dados: A análise exploratória dos dados do dataset podem ser encontradas no arquivo notebook.ipynb, a explicação dos dados abordados nesta EDA pode ser acessada no seguinte link para o vídeo;
-
Modelo Produtivo: O modelo pode ser consumido através da aplicação de forma local através das instruções apresentadas abaixo.
A estrutura de pastas e arquivos do projeto se encontra disposta da seguinte maneira:
├── Datasets # Diretório de datasets e derivados
├── StudentPerformanceFactors.csv # Conjunto de dados exportado do Kaggle
└── StudentPerformanceFactors.db # Conjunto de dados salvo em arquivo SQLite
├── Models # Diretório de modelos e derivados
├── model_svr.pkl # Modelo SVR serializado
└── scaler.db # MinMaxScaler serializado
├── app.py # Aplicação Streamlit
├── LICENSE.txt # Licença MIT vigente sob este repositório
├── model_api.py # API para requests ao modelo treinado
├── notebook.ipynb # Notebook de EDA
├── README.md # Documentação do projeto
└── requirements.txt # Dependências externas utilizadas
Para execução do aplicativo e utilização do modelo gerado neste projeto, se fazem necessárias as seguintes dependências:
- FastAPI;
- Joblib;
- Pandas;
- Scikit-learn;
- Streamlit;
- Uvicorn.
Todas dependências necessárias para reprodução do projeto contido neste repositório foram testadas com a versão 3.12.5 do Python.
É recomendado que sejam utilizadas as versões de dependências incluídas no arquivo requirements.txt, a fim de evitar erros originados por incompatibilidade de versões.
Para isso, navegue até o diretório do projeto, e no terminal execute a seguinte sequência de comandos:
# Crie um ambiente virtual para instalar as dependências:
python3 -m venv .venv
# Para ativar o ambiente virtual, caso esteja usando Linux ou macOS, execute:
source .venv/bin/activate
# Para ativar o ambiente virtual, caso esteja usando Windows, execute:
.venv\Scripts\activate
# Instale as dependências do projeto:
pip install -r requirements.txt
Com o ambiente virtual ativo, e dependências necessárias instaladas, é necessario que sejam abertos em terminais distintos os servidores para a API do modelo, e para a aplicação.
# Inicie o servidor Uvicorn para execução do FastAPI:
# (Por padrão, o Uvicorn irá rodar na porta 8000)
uvicorn model_api:app
# Inicie o servidor Streamlit para execução da aplicação:
# (Por padrão, o Streamlit irá rodar na porta 8501)
streamlit run app.py
Após ambos servidores estarem em execução simultaneamente, é possível realizar requisições para API do modelo por meio da aplicação.
No caso do modelo desenvolvido neste projeto, a aplicação é um formulário de dados estudantis para predição do desempenho esperado do aluno em um exame hipotético.
Isabelli Andrade de Souza - https://github.com/Isabellitankian
Lucas Souza Andrade dos Santos - https://github.com/LSouzaAndrade
Michel de Lima Maia - https://github.com/Michel-Maia
Valquiria Rodrigues de Oliveira Pires - https://github.com/KyraPires