# 🧬 Generación de un Metamodelo Basado en Machine Learning para Determinar Casos de Reposicionamiento de Fármacos

> **TFG · UPM – ETSI Informáticos**  
> **Autora**: Alba Sanz Bustos   
> **Tutor**: Alejandro Rodríguez González  
> **Co-tutora**: Lucía Prieto Santamaría  
> Curso 2024-2025


## Diagramas del flujo del proyecto
![Flujo de ingesta, EDA y almacenamiento](Figura 8.png)
![Flujo de partición, balanceo y modelado](Figura 9.png)

Este repositorio contiene el **código, datos procesados, resultados y figuras** del TFG, cuyo objetivo es desarrollar un metamodelo de machine learning que integre los resultados de distintos modelos existentes para priorizar las mejores hipótesis de reposicionamiento de fármacos.

---

## 📂 Estructura del proyecto

| Carpeta | Descripción                                                                                                                                                                                                            |
|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **`code/`** | Módulos Python con los *pipelines* de balanceo (`pipelines/`), la definición de modelos (`models.py`), utilidades de métricas (`metrics.py`), ténicas de preprocesado (`preprocessing.py`), y el orquestador `run.py`. |
| **`data/`** | Datos en 3 niveles (`raw/`, `interim/` y `unified/`). El fichero clave para lanzar los experimentos es `data/unified/table_completed_preprocessed.parquet`.                                                            |
| **`notebooks/`** | *Jupyter Notebooks* usados para EDA, transformaciones preliminares y generar las gráficas de los resultados.                                                                                                           |
| **`results/`** | Salida de los experimentos: métricas, *pickles* de modelos, predicciones para Alzheimer y Esquizofrenia.                                                                                                               |
| **`figures/`** | Gráficos generados (ROC, matrices de confusión, precision@K, etc.).                                                                                                                                                    |
| **`export_tables/`** | *Notebooks* de apoyo para extraer tablas de la BD **DRIVE** (*drivers* no incluidos).                                                                                                                                  |

---

## ⚙️ Requisitos

* Python ≥ 3.11  
* Las versiones exactas empleadas se encuentran en (`requirements.txt`)
