Este repositorio forma parte de Trabajo de Fin de Grado (TFG) realizado por Francisco de Paula Algar Muñoz en la Universidad de Córdoba (UCO) titulado: Aplicación de sistemas de recomendación en entornos educativos (PDF).
El objetivo de este TFG es desarrollar un sistema de recomendación para e-learning basado en un conjunto de datos de referencia, lo que permitirá evaluar su rendimiento en comparación con otros modelos previos.
ucorecsys [-h] (-i MODEL_PATH | -t | -e | -s | -st) [-ds {mars,itm}] [-cv {kfold,loo}]
[--top_k TOP_K] [--epochs EPOCHS] [--batch_size BATCH_SIZE] [--output_model MODEL_OUT]
[-lr LR] [-k K_SPLITS] [--seeds SEEDS] [-p] [-v]
-h, --help show this help message and exit
-i MODEL_PATH, --inference MODEL_PATH
Run inference on a trained model (provide path to model file).
-t, --train Train the model.
-e, --eval Evaluate the model.
-s, --surprise Run Surprise evaluation.
-st, --stats_test Run stats test (default: False).
Common Options:
-ds {mars,itm}, --dataset {mars,itm}
Dataset to use (default: mars).
-cv {kfold,loo}, --cvtype {kfold,loo}
Cross-validation type (default: kfold).
--top_k TOP_K Top-k value for ranking metrics (default: 10).
Training Options:
--epochs EPOCHS Training epochs (default: 50).
--batch_size BATCH_SIZE
Training batch size (default: 128).
--output_model MODEL_OUT
Path to save trained model (default: model.pt).
-lr LR Learning rate (default: 0.001).
Evaluation Options:
-k K_SPLITS, --k_splits K_SPLITS
Number of CV splits (default: 5).
--seeds SEEDS Random seeds (default: [0, 1, 42]).
Miscellaneous Options:
-p, --plot Generate plots.
-v, --verbose Enable verbose output.```
Note
Para ejecutar este proyecto es necesario tener instalado el manajador de paquetes uv
Sigue estos pasos para ejecutar el proyecto:
-
Clona el repositorio
git clone https://github.com/Pacatro/UcoRecSys.git cd UcoRecSys
-
Ejecuta el proyecto
El siguiente comando creará el entorno virtual instalando todas las dependencias necesarias:
uv run src/main.py -h
-
Entrenamiento del modelo sobre el conjunto de datos MARS utilizando 10 épocas y una lista de Top-15 recomendaciones guardado en el archivo
tfg.pt
:uv run src/main.py -t -ds mars --epochs 10 --top_k 15 --output_model tfg.pt
-
Inferencia sobre el modelo entrenado anteriormente:
uv run src/main.py -i tfg.pt
Francisco de Paula Algar Muñoz
Amelia Zafra Gómez
Cristóbal Romero Morales