PBO: Estadística Computacional
Primer Bloque: Otoño
Programación para Ciencia de Datos
El objetivo es conocer las etapas que forman parte de un proyecto de Ciencia de Datos; poder definir correctamente un proyecto de Ciencia de Datos; conocer las implicaciones en la toma de decisiones de cada etapa de un proyecto de Ciencia de Datos; conocer las métricas de desempeño off-line/on-line de un modelo predictivo así como las implicaciones de la selección correcta y cuantificar el sesgo e inequidad de los modelos construidos.
Temario:
1. Manipulación de datos desde la línea de comandos
1.1 Archivos y directorios
1.2 Filosofía UNIX
1.3 Movimiento en la terminal
1.4 Pipes y Redirecciones
1.5 Comandos útiles: seq, tr, wc, head, tail, cat, uniq, cut, sort
1.6 Jobs
1.7 file, iconv, od
1.8 Expresiones regulares
1.9 Analizando datos: grep, awk, sed
1.10 Bash programming
2. Controladores de versiones
2.1 Configuración de git
2.2 Solo Workflow
2.3 Github Workflow
2.4 Branches
2.5 Pus, Pull y Pull request
2.6 Merges
2.7 Tags
3. Desarrollo de software para productos de datos
3.1 El código es para comunicarse con humanos: Buenas prácticas en programación
3.2 Paradigmas de programación: Procedural, Orientado a Objetos, Funcional, Lógico/Declarativo, Spaghetti code/
3.3 Diseño semántico
3.4 Implementación de un simulador
3.5 Pruebas en Ciencia de datos
3.6 Reproducibilidad: Buenas prácticas
3.7 Reproducibilidad: Ambientes
3.8 Reproducibilidad: Máquinas virtuales y Contenedores
4. Almacenar datos: Bases de datos y SQL
4.1 ¿Por qué usarlas?
4.2 Bases de datos relacionales
4.3 Data model
4.4 Introducción a SQL
4.5 SQL Avanzado
4.6 SQL para Ciencia de Datos: Feature engineering
4.7 Diseño de esquemas para un producto de datos
4.8 SQL para datos espaciales: GIS
4.9 Comparación con bases NOSQL
5. Escalar ejecución de código
5.1 Limitaciones
5.2 Tipos de escalamiento
5.3 GNU/Parallel usando CPUs
5.4 Sólo Python: Dask
5.5 Usando la herramienta adecuada: diseño de solución
6. Pipeline
6.1 Pipelines en productos de datos
6.2 Solución naïve: Limitaciones
6.3 Luigi, AirFlow
7. Escalar en la nube
7.1 La nube: conceptos y herramientas
7.2 GNU/Parallel usando la nube
7.3 Ejecución batch
7.4 Ejecución on-line
7.5 Serverless