- About the Project
- Main Features
- Current Issues
- Folder Structure
- Possible Improvements
- Architecture Diagram
- Installation and Usage
- Model Performance & Hyperparameters
- Testing
- Demo
- Render Deployment
- Dockerization.
- System Logs.
- Versioned.
- A/B Testing.
- Collaborators
Are you fit enough for a physical challenge, a competitive exam, or an active lifestyle? This project aims to answer that question in less than a second, using just your physical data and a few simple performance tests.
This multi-class classification project aims to estimate a person's physical performance level (classes A, B, C, or D) based on their body measurements and standardized physical test results.
The model was trained using a dataset from the Korea Sports Promotion Foundation, which includes variables such as age, gender, blood pressure, grip strength, flexibility, and jump distance. These kinds of assessments are commonly used in sports programs, fitness evaluations, or entrance exams for public service roles and can be performed in gyms or training centers.
Although the data originates from Korea, the features used are universal, making the model adaptable to other countries with similar evaluation standards. The goal is to offer a fast, objective tool to support physical readiness without making any personal judgments.
β
Complete EDA process with data cleaning and visualizations.
β
Multiclass classification with Gradient Boosting model.
β
Backend implemented with Python and FastApi.
β
Database integration using Supabase.
β
Well-organized and modular project structure.
β Enhanced model accuracy necessitates the acquisition of additional data.
β Implement ML Flow.
# ClasificaciΓ³n_Multiclase_equipo_6
π Clasificaci-n_Multiclase_equipo_6
βββ π .venv/
βββ π .github/
βββ π core/
βββ π database/
β βββ supabase_connection.py
βββ π static/
β βββ π img
β βββ model_3d.js
β βββ style.css
βββ π templates
β βββ index.html
βββ π model/
β βββ model.pkl
β βββ gender_map.pkl
β βββ class_map.pkl
β βββ testing-model.ipynb
β βββ model.py
β βββ utils.py
βββ π data/
βββ π notebook/
β βββ EDA_Clasificacion_multiclase.ipynb
βββ π tests/
β βββ test_model.py
βββ π .env
βββ π README.md
βββ π .gitignore
βββ π requirements.txt
βββ π main.py
βββ π dockerfile
βββ π compose.yaml
βββ π .dockerignore
βββ π logs.log
βββ π CONTROLVERSION.md
---
git clone https://github.com/Bootcamp-IA-P4/Clasificaci-n_Multiclase_equipo_6.git
cd Clasificaci-n_Multiclase_equipo_6
python -m venv .venv
source .venv/Scripts/activate # Windows
source .venv/bin/activate # Linux/Mac
pip install -r requirements.txt
uvicorn main:app --reload
---
Copy the following command to run the tests:
python -m unittest tests/test_model.py
π
You can view the live version project at Render - ClasificaciΓ³n Multiclase.
This application is Dockerized. To run it, execute the following command:
docker-compose up --build
The logging system, built with core.lw_log, records every access and prediction made, enabling traceability and auditing of the application's usage.
The system utilizes automatic versioning based on GitHub tags.
Every time the application is deployed, the displayed version corresponds to the latest tag published in the repository, which facilitates change control..
The project implements an automatic A/B testing system for machine learning models. Each time new data is generated, a new model (Model B) is trained and its performance is compared to the current production model (Model A) using the macro F1-score on the same validation set. If Model B outperforms Model A by at least 10% in F1-score, it automatically replaces the production model. The entire process is logged and recorded in a CSV history for traceability and auditing.
This project was developed by the following contributors: