En este repositorio se realiza un entrenamiento de un algoritmo de machine learning
para intentar predecir el mejor medicamento para una serie de pacientes y se despliega el modelo a través de una aplicación web mediante un espacio de Hugging Face
.
Se automatiza mediante dos flujos de trabajo en GitHub Actions
los procesos de integración continua (CI
) y despliegue continuo (CD
):
-
Cada vez que se hace un
push
en la ramamaster
, o una solicitud de unpull request
, se ejecuta el flujo de trabajo deCI
en el que aparte de configurar e instalar los requisitos de librerías se ejecuta el archivotrain.py
que realiza el entrenamiento y la evaluación del algoritmoRandom Forest
con los datos de los pacientes, creándose automáticamente un mensaje en elcommit
o en el hilo delpull request
con las métricas y la matriz de confusión obtenidas en el entrenamiento del flujo de trabajo y actualizando automáticamente la ramaupdate
de GitHub con estas métricas y con el nuevo modelo obtenido. -
Cuando se completa el flujo de trabajo de
CI
, se ejecuta el flujo deCD
en el que mediante untoken
creado en nuestra cuenta deHugging Face
se suben las carpetas de la aplicación web, las métricas y el modelo entrenado en el espacio deHugging Face
creado para el proyecto. De esta forma, se tiene una aplicación web hospedada gratuitamente en este espacio donde se pueden seleccionar los valores de las características de entrada de los pacientes para ver que medicamento se pronostica para cada uno de ellos.
-
.github/workflows: Aquí se recopilan los flujos de trabajo que contienen los trabajos de integración continua y despliegue continuo.
-
App: En esta carpeta se encuentra el archivo de la aplicación web del clasificador, el
README.md
con metadatos de la aplicación y el archivorequirements.txt
que sirve para instalar las librerías necesarias para el funcionamiento de la aplicación web. -
Data: Carpeta donde se recopilan los datos de los pacientes.
-
Model: Aquí se recopila el modelo entrenado en formato
skops
. -
Results: En este directorio se guardan las métricas de
test
en un archivo de texto y la matriz de confusión.