Por Jose R. Zapata
La evaluacion del curso consta de 3 trabajos practicos y su porcentaje en la evaluacion del curso es
Trabajo | Porcentaje | Descripcion |
---|---|---|
1 | 50 % | Analisis, procesamiento y modelamiento de datos en Jupyter Notebook |
2 | 25 % | Conversion del trabajo anterios a Scripts de Python con pruebas unitarias |
3 | 25 % | Proyecto de ciencia de datos estructurado en Kedro con tracking de experimentos y validaciones |
Trabajo 1 (50 %)
A cada grupo de estudiantes se le asignara un dataset y el objetivo es realizar el análisis, preparación y visualización de datos con Python y finalmente hacer un proceso de selección de modelos con Machine Learning.
El proyecto se debe subir a github y utilizar cookiecutter para inicializar la creación de las carpetas del proyecto.
http://drivendata.github.io/cookiecutter-data-science/
El ejemplo del proyecto de readmission está en este repositorio de github:
https://github.com/JoseRZapata/Readmission-ML-Project/tree/master/notebooks
Evaluación
Matriz de evaluacion
Porcentaje | Descripción | Nada | Incompleto | Completo |
---|---|---|---|---|
8.33 % | Preparación de los datos (datos nulos, outliers, duplicados, corrección de formatos de tipos de datos) | |||
8.33 % | Visualización de datos (Univarible y Bivariable) Histogramas, boxplots, correlaciones, etc | |||
8.33 % | Descripción y Análisis Estadístico de los datos | |||
8.33 % | Machine Learning Entrenar y evaluar todos los modelos propuestos | |||
8.33 % | Hiper parametrizacion Hiperparametrizar 2 modelos y escoger el mejor modelo | |||
8.33 % | Resultados y Conclusiones analisis de los datos, conclusiones del modelos y los resultados obtenidos |
Trabajo 2 (25 %)
El objetivo de este trabajo es llevar el proceso del proyecto de los Jupyter notebook a scripts de python.
Como ejemplo estan los scripts del proyecto de Readmission
https://github.com/JoseRZapata/Readmission-ML-Project/tree/master/src
Se deben crear los siguientes scripts:
- Extraccion de datos (Ej: makedataset.py) y preprocesamiento (Ej: preprocessing.py)
- Procesamiento de datos - limpieza y transformacion de datos (Ej: build_features)
- Entrenamiento de modelo (Ej: train_model.py)
- Evaluacion del modelo (Ej: evaluation.py)
- Pruebas unitarias Realizar por lo menos una prueba unitaria de las funciones que han creado (Ej: test_features.py )
Nota: Usar pipelines de pandas mediante el metodo .pipe
En este video hay un tutorial de como hacer pruebas unitarias: https://www.youtube.com/watch?v=5ufpsjfk99U
Evaluacion
Cada uno de los scripts se debe poder ejecutar desde la linea de comando y realizar la función.
Porcentaje | Descripción | Funciona (Si / No) |
---|---|---|
5 % | Extraccion de datos (lectura de datataset, preprocesamiento inicial division train y test) | |
5 % | Procesamiento de datos Limpieza y transformacion de los datos listos para usarse en ML | |
5 % | Entrenamiento de modelo Entrenamiento del modelo de ML | |
5 % | Evaluacion del modelo Evaluacion de train y test | |
5 % | Prueba Unitaria Pytest de alguna funcion |
Trabajo 3 (25 %)
Utilizar los scripts de python y funciones desarrolladas para crear un proyecto estructurado de ciencia de datos implementando:
- Tracking de experimentos
- Validacion de datos
- Validacion de datos train / test
- Validacion de modelo
- Pipelines de transformacion con sci-kit learn
- Visualizacion de pipelines
Evaluacion
Se debe ejecutar los procesos de:
Porcentaje | Descripción | Funciona (Si / No) |
---|---|---|
8.33 % | kedro run | |
8.33 % | kedro viz | |
8.33 % | mlflow ui |
Repositorio de Ejemplo:
https://github.com/JoseRZapata/readmission-ml-project-kedro