diff --git a/.gitignore b/.gitignore index 076634a..bdf6b0f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ old/** *zip +MODY?_label diff --git a/README-es.md b/README-es.md new file mode 100644 index 0000000..b61c181 --- /dev/null +++ b/README-es.md @@ -0,0 +1,58 @@ +}# 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`](https://docs.anaconda.com/miniconda/install/) 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. + +```python +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. + +```python +mody2.fit() +``` +Entrena todos los modelos, para todos los conjuntos de prueba. + +```python +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. + +```python +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. diff --git a/README.md b/README.md index 875c8bf..2bf7559 100644 --- a/README.md +++ b/README.md @@ -1,58 +1,65 @@ -# Código y Dataset de MODY +# MODY Code and Dataset -La siguiente tiene los codigos en python para entrenar modelos y el dataset ya pre-procesado para cargarlo al pipeline. +This repository contains the Python code used to train models and the pre-processed dataset ready to be loaded into the pipeline. -## Instalación de pre requisitos. +## Prerequisites Installation -Se requiere [Miniconda / `conda`](https://docs.anaconda.com/miniconda/install/) para generar el ambiente con las dependencias: +You’ll need [Miniconda / `conda`](https://docs.anaconda.com/miniconda/install/) to create the environment with the required dependencies: -``` +```bash 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 +After installing the environment, activate it with: -``` +```bash conda activate mody ``` -## Ejecución del Pipeline +## Running the Pipeline -El archivo `train.py` tiene un ejemplo de pipeline. Para ejecutarlo solo debe: +The file `train.py` contains an example of the pipeline. To run it, simply execute: -``` +```bash python train.py ``` -## Estructura del pipeline +## Pipeline Structure -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. +The `load_data` function reads the `MODY_data.xlsx` file, which contains the pre-processed dataset. +If it does not exist, a base dataset file named `HC.xlsx` is required to generate it. ```python 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. +This returns four dataframes, each containing the full dataset. +Next, we create a `BinaryTuner` object, which provides the abstractions to generate 10 datasets and test 10 different machine learning strategies. +It takes multiple parameters — the first being the target column name, followed by either the number of seeds (`n_seeds`) or a vector of specific seeds (`seeds`), and the test set proportion. -``` +```python 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. +This creates a directory named after the target column, which stores logs, models, and generated images. +**Note:** This introduces a restriction — if you want to run experiments on other datasets with the same target column name, ensure that the directory does **not** already exist before starting a new training run. ```python mody2.fit() ``` -Entrena todos los modelos, para todos los conjuntos de prueba. + +Trains all models for all test sets. ```python 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. +Generates SHAP plots for the specified model/dataset/seed combination. +A complete list of model names, datasets, and seeds can be found in the files within the directory. ```python 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. +This is an auxiliary method that creates a compressed `.zip` file containing the directory’s contents. +The file includes a timestamp to prevent name collisions in subsequent runs.