Go to file
ifiguero d004fc495c fix 2024-12-06 23:10:07 -03:00
LICENSE Initial commit 2024-12-06 18:57:00 -03:00
MODY_data.xlsx training code 2024-12-06 19:08:51 -03:00
README.md fix 2024-12-06 23:10:07 -03:00
load_dataset.py training code 2024-12-06 19:08:51 -03:00
train.py patch 2024-12-06 22:51:20 -03:00
trainer.py patch 2024-12-06 22:51:20 -03:00

README.md

Código y Dataset de MODY

La siguiente tiene los codigos en python para entrenar modelos y el dataset ya pre-procesado para cargarlo al pipeline.

Instalación de pre requisitos.

Se requiere Miniconda / conda para generar el ambiente con las dependencias:

conda create -n mody python=3.10 scikit-learn imbalanced-learn xlsxwriter openpyxl pandas xgboost enlighten conda-forge::shap ray-tune tensorflow-gpu keras tensorboard conda-forge::keras-tuner matplotlib

Luego de que instale el ambiente debería dejas las instrucciones para activarlo

conda activate mody

Ejecución del Pipeline

El archivo train.py tiene un ejemplo de pipeline. Para ejecutarlo solo debe:

python train.py

Estructura del pipeline

La función load_data lee el archivo MODY_data.xlsx que contiene la base de datos pre-procesada. En caso que no exista debe poseer un archivo de base de datos HC.xlsx para generarlo.

df_mody1, df_mody2, df_mody3, df_mody5 = load_data()

Esto devuelve 4 dataframes cada uno conteniendo el dataset completo. Luego creamos un Objeto BinaryTuner que contiene las abstracciones para generar los 10 dataset y probar los 10 estrategias de aprendizaje automático. Recibe multiples parametros, siendo el primero el nombre de la columna objetivo, numero de semillas(n_seeds) o vector con semillas(seeds) y proporción del conjunto de pruebas.

mody2 = BinaryTuner(df_mody2, 'MODY2_label', seeds=[231964], drop_ratio=0.2)

Esto crea un directorio llamado como la columna objetivo que contiene los registros, modelos e imagenes que se generen en adelante. Esto presenta una restricción si se quiere hacer pruebas con otros dataset con una columna objetivo que tnga el mismo nombre. Se debe tener cuidado verificar que el directorio no existe antes de comenzar un entrenamiento desde cero.

mody2.fit()

Entrena todos los modelos, para todos los conjuntos de prueba.

mody2.explain_model('GaussianNB', 'fulldataset-oversampled-mice', 231964)

Se generan las graficas SHAP para el modelo/dataset/semilla indicadas. Una lista completa de nombres de modelo, datasets y semillas se encuentran en los archivos dentro del directorio.

mody2.wrap_and_save()

metodo auxiliar. Crea un zip comprimido con el contenido del directorio asociado. El archivo contiene un timestamp para evitar colisiones en subsecuentes ejecuciones.