Repositorio que agrupa código, datos y configuraciones para evaluar métodos de balanceo y clasificación sobre datasets desbalanceados. Incluye utilidades para extraer metadatos, generar JSONs por artículo, wrappers para balanceadores y clasificadores, y pipelines reproducibles. El punto de entrada principal es main.py.
/TFG-imbalanced-datasets
├── README.md
├── requirements.txt
├── config/parameters.py
├── data/
├── img/
├── json/
├── src/
└── main.py
Los módulos clave están en src/ (ingestión, balanceo, clasificadores, core, visualización, utilidades). El fichero de parámetros globales es config/parameters.py.
- Dependencias listadas en
requirements.txt.
Instalación rápida:
python -m venv .venv
source .venv/bin/activate # o .venv\Scripts\activate en Windows
pip install -r requirements.txtParámetros globales (rutas, métricas por defecto, métodos, opciones de análisis, etc.) están centralizados en config/parameters.py. Modifique ahí índices, rutas y flags (por ejemplo EXTENDED_ANALYSIS, JSON_PATH, PATH_ARTICLES_XLSX, RESULTS_OUTPUT_CSV) para reconfigurar la ejecución sin tocar la lógica fuente.
Ejecutar el menú interactivo:
python main.pyEl programa muestra un menú con las opciones principales (1–9). Las acciones implementadas en main.py son, de forma concisa:
- Registro manual de artículos (GUI).
- Ingestión automática de artículos desde
PATH_ARTICLES_XLSX. - Cargar JSONs y listar técnicas por artículo.
- Resumen de métricas extraídas.
- Análisis/validación de JSONs.
- Construcción del meta-dataset y exportación a CSV (
TRAIN_CSV_OUTPUT,TEST_CSV_OUTPUT). - Métodos para selección del número de clústeres (Elbow, Silhouette).
- Evaluación de modelos de clustering (configurable mediante
MODELS). - Ejecución de experimentos de balanceo y clasificación.
- JSONs generados:
JSON_PATH(por defectojson/). - XLSX artículos:
PATH_ARTICLES_XLSX. - CSVs meta-dataset:
TRAIN_CSV_OUTPUT,TEST_CSV_OUTPUT. - Resultados de experimentos:
RESULTS_OUTPUT_CSV.
- Todas las constantes y rutas se gestionan desde
config/parameters.pypara facilitar la re-ejecución controlada. - Las pipelines del experimento se coordinan desde
src/core.pyymain.py. - Los JSONs normalizados actúan como fuente para construir el meta-dataset.
- Para añadir un balanceador o clasificador, implemente el wrapper en
src/balance_methods.pyosrc/classification_methods.pyrespectivamente, respetando la interfaz usada por el pipeline. src/visualization.pygenera las figuras de clústeres.