Tools_ML_EDA es el paquete de Python que hemos desarrollado para el Team Challenge de EDA y Machine Learning. El proyecto reúne funciones útiles para explorar datos, tipificar variables, analizar relaciones con un target de regresión y generar visualizaciones de apoyo al análisis.
El paquete permite:
- obtener un resumen de un DataFrame;
- tipificar variables según su cardinalidad;
- seleccionar variables numéricas relacionadas con un target;
- representar gráficamente relaciones numéricas con el target;
- seleccionar variables categóricas significativas;
- representar distribuciones del target por grupos categóricos.
Todo el proyecto está organizado como un paquete instalable, con funciones documentadas, validación de entradas y tests automáticos con pytest.
.github/
└── workflows/
└── tests.yml
notebooks/
└── demo.ipynb
└── data/
└── titanic_cat_reg.csv
tests/
├── __init__.py
└── test_core.py
toolbox_ml/
└── eda/
├── __init__.py
└──core.py
.gitignore
README.md
requirements.txt
setup.py
- Python 3.10 o superior
- pandas
- numpy
- scipy
- matplotlib
- seaborn
- pytest
- scikit-learn, solo para la función bonus
Todas las dependencias están en requirements.txt.
Clona el repositorio e instala el proyecto en un entorno virtual:
git clone https://github.com/user/Tools_ML_EDA.git
cd Tools_ML_EDA
python -m venv venv
source venv/bin/activate # Mac/Linux
pip install -r requirements.txt
pip install -e .En Windows:
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
pip install -e .Una vez instalado el paquete, las funciones se importan así:
from toolbox_ml.eda.core import (
describe_df,
tipifica_variables,
get_features_num_regression,
plot_features_num_regression,
get_features_cat_regression,
plot_features_cat_regression
)import seaborn as sns
from toolbox_ml.eda.core import describe_df
df = sns.load_dataset("titanic")
resumen = describe_df(df)
print(resumen)Devuelve un resumen por columna con tipo de dato, porcentaje de nulos, número de valores únicos y cardinalidad.
from toolbox_ml.eda.core import tipifica_variables
tipos = tipifica_variables(df, umbral_categoria=10, umbral_continua=70.0)
print(tipos)from toolbox_ml.eda.core import get_features_num_regression
numericas = get_features_num_regression(
df=df,
target_col="fare",
umbral_corr=0.2,
pvalue=0.05
)
print(numericas)Devuelve las variables numéricas con correlación relevante con el target.
from toolbox_ml.eda.core import plot_features_num_regression
seleccionadas = plot_features_num_regression(
df=df,
target_col="fare",
columns=[],
umbral_corr=0.2,
pvalue=0.05
)
print(seleccionadas)Genera gráficos de las variables numéricas seleccionadas junto al target.
from toolbox_ml.eda.core import get_features_cat_regression
categoricas = get_features_cat_regression(
df=df,
target_col="fare",
pvalue=0.05
)
print(categoricas)Selecciona variables categóricas con relación estadísticamente significativa con el target.
from toolbox_ml.eda.core import plot_features_cat_regression
representadas = plot_features_cat_regression(
df=df,
target_col="fare",
columns=[],
pvalue=0.05,
with_individual_plot=False
)
print(representadas)Muestra histogramas agrupados del target por categorías.
Para ejecutar los tests:
pytest tests/ -vLos tests cubren casos válidos, casos límite y casos de error para las funciones del paquete.
El notebook notebooks/demo.ipynb muestra el uso del paquete con un dataset real y sirve como demostración del proyecto.
El proyecto ha sido realizado por:
- Ana Corrochano
- Maria Rodriguez
- Melania Fondevilla
- Paula Comas
- William Walker
Hemos trabajado con ramas de feature y Pull Requests hacia main, usando commits con formato Conventional Commits.
Ejemplos:
feat: add describe_df function
fix: handle empty dataframe in tipifica_variables
docs: update README examples
test: add unit tests for num regression