Skip to content

Bootcamp-IA-P4/Clasificaci-n_Multiclase_equipo_6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Banner centrado

πŸ“Œ Index


About the Project

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.


πŸ” Main Features

βœ… 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.


🐞 Current Issues

❌ Enhanced model accuracy necessitates the acquisition of additional data.


πŸ’‘ Possible Improvements

βœ… Implement ML Flow.


πŸ“ Folder Structure

# 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

🧠 Architecture Diagram

Banner centrado
---

βš™οΈ Installation and Usage

1️⃣ Clone the repository

git clone https://github.com/Bootcamp-IA-P4/Clasificaci-n_Multiclase_equipo_6.git
cd Clasificaci-n_Multiclase_equipo_6

2️⃣ Create and activate the virtual environment

python -m venv .venv
source .venv/Scripts/activate # Windows
source .venv/bin/activate  # Linux/Mac

3️⃣ Install dependencies

pip install -r requirements.txt

4️⃣ Start the App

uvicorn main:app --reload

πŸ“Š Model Performance & Hyperparameters

Metrics
---

🧐 Testing

Copy the following command to run the tests:

python -m unittest tests/test_model.py
test
---

πŸ“‚ Demo

πŸ”— ▢️ Ver Demo

Alt text

πŸš€ Render Deployment

You can view the live version project at Render - ClasificaciΓ³n Multiclase.


πŸ‹ Dockerization

This application is Dockerized. To run it, execute the following command:

docker-compose up --build

🚩 System LOgs

The logging system, built with core.lw_log, records every access and prediction made, enabling traceability and auditing of the application's usage.


πŸ“’ Versioned

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..


A/B Testing

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.


πŸ§‘β€πŸ’» Collaborators

This project was developed by the following contributors:


(⬆️ Back to top)

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages