Data Science con Python
Plan de estudio
Audiencia:
Aquellos que busquen especializarse en técnicas de programación avanzadas
en Python, con miras a proyectarse a la posición de Científicos de Datos (Data
Scientists).
Entusiastas con conocimientos de herramientas de programación y
matemáticas, que busquen especializarse en programación avanzada con
Python
Requisitos:
Poseer conocimientos generales de matemáticas y básicos de estadística y de
álgebra lineal.
Tener experiencia en desarrollo con lenguajes de uso actual, con paradigmas
estructurados y de orientación a objetos.
Conocer la programación básica en Python.
Egresados o estudiantes avanzados de carreras afines a la programación.
Modelo pedagógico:
Virtual:
Teoría asincrónica y sincrónica
Práctica basada en casos reales, con consulta sincrónica
Cada clase finaliza con una tarea de desarrollo relevante.
Materiales didácticos:
Uso de Github para la publicación del código fuente en Python, listo
para descargar y utilizar en cada proyecto.
Duración total:
36 hs reloj (12 clases semanales de 3 hs cada una)
Certificación:
80 % de asistencia obligatoria a las clases sincrónicas
100 % de aprobación de evaluaciones y trabajos prácticos
Requerimientos de infraestructura:
Cuentas en GitHub/GitLab (para repositorios de código), AWS para
procesamiento en Machine Learning (AWS Setup Functions, AWS Data
Science for Python, y/o AWS SageMaker).
Almacenamiento para descargas de software común (Júpiter / Jupiter Labs;
Cuentas en herramientas complementarias/suplementarias (Anaconda o
similares).
Objetivos:
Obtener un acercamiento al campo de la ciencia de datos, revisando las
funciones y características avanzadas de Python usadas por los científicos de
datos.
Representar visualmente la información procesada, realizando informes y
gráficos claros para la toma de decisiones, con perspectiva de diseño en
Python.
Dominar métodos avanzados de Machine Learning, utilizando las
herramientas de Python.
Contenidos generales:
Introducción.
Conceptos básicos del entorno de programación de Python
Técnicas fundamentales de programación de Python: lambdas, lectura y
manipulación de archivos CSV, biblioteca Numpy
Técnicas de manipulación y limpieza de datos utilizando la popular biblioteca
de ciencia de datos de Python (PANDAS)
Abstracción de Series y Dataframes como las estructuras de datos centrales
para el análisis de datos. Funciones como group by, merge y tablas dinámicas.
Representación de datos y gráficos aplicados en Python.
Conceptos básicos de visualización de información para la realización de
informes y gráficos
Representación visual de estadísticas, con perspectiva de diseño en Python
Biblioteca matplotlib para presentar gráficos claros para la toma de decisiones.
Machine Learning Aplicada en Python
Herramientas, métodos y técnicas de trabajo para Machine Learning en Python
Dimensionalidad de los datos, agrupamiento, y evaluación.
Enfoques supervisados para crear modelos y predictivos
Análisis de problemas del proceso como la validación y sobre ajuste
(overfitting).
Contenidos clase a clase:
Clase 1 | Manipulación de Datos con Python
Funciones de Python; Tipos y secuencias de Python; Manejo de Cadenas en Python; Demo: lectura y
escritura de archivos CSV ; Manejo de Fechas y horas de Python ; Objetos de Python Avanzados:
map(); Comprensiones Avanzadas de Python Lambda y Listas; Biblioteca numérica de Python
(NumPy); Manejo de Texto con expresiones regulares.
Clase 2 | Procesamiento Básico con PANDAS
Introducción a bibliotecas Pandas; La estructura de datos de una serie; Consultando una serie;
Estructura de datos DataFrame; Indexación y carga de DataFrames; Consultando un DataFrame;
Indexación de marcos de datos; Valores Perdidos; Manipulación de DataFrames
Clase 3 | Procesamiento Avanzado con PANDAS
Fusión de DataFrames; Idioma y Modismos de PANDAS; Uso de “group by”; Uso Escalas y Tablas
Pivotes; Uso de Fechas y Horas y con funcionalidad específica.
Clase 4 | Respondiendo Interrogantes con Datos Desordenados
Muestreo Estadístico Básico; Otras formas de Datos Estructurados; P-Hacking; Algoritmos Gráficos
Necesarios.
Clase 5 | Principios de la Visualización de la Información
Herramientas para pensar en un diseño; Heurística gráfica: relación data-ink, gráfico basura, factor
de mentira/distorsión y líneas de chispa. Gráficos Realistas.
Clase 6 | Gráficos Básicos
Introducción; Arquitectura Matplotlib; Trazado básico con Matplotlib; Diagramas de dispersión; Parcelas lineales;
Gráficos de barras; Descontaminación de Plots.
Clase 7 | Fundamentos de los Gráficos
Subparcela (Plots); Histogramas; Box Plots; Mapas de Calor (Heatmaps); ; Animación; Interactividad.
Clase 8 | Visualización Aplicada
Graficando con Pandas; Uso de Seaborn; Integración de conceptos con formulaciones independiente como
profesional y científico de datos.
Clase 9 | Fundamentos de Machine Learning – Introducción a SciKit Learn
conceptos clave de Machine Learning, Herramientas de Python par Machine Learning, Ejemplos de Problemas
resueltos con Machine Learning, Examinando Datos, Clasificación de K-Nearest Neighbors.
Clase 10 | Machine Learning Supervisado - Introducción
Introducción al aprendizaje automático supervisado; Sobreajuste y desajuste (Overfitting); Aprendizaje
supervisado (Machine Learning): conjuntos de datos (Datasets); Vecinos cercanos (K-Nearest Neighbors):
clasificación y regresión; Regresión lineal: mínimos cuadrados; Regresión lineal: regresión de cresta, lazo y
polinomio; Regresión logística; Clasificadores lineales: Máquinas de vectores de soporte (Support Vector
Machines); Clasificación de clases múltiples; Máquinas de vectores de soporte kernelizado (Kenerlized Support
Vector Machines); Validación cruzada; Árboles de decisión.
Clase 11 | Evaluación
Evaluación y selección de modelos; Matrices de confusión y métricas de evaluación básicas; Funciones de
decisión del clasificador; Curvas de recuperación de precisión y ROC; Evaluación de varias clases; Evaluación de
regresión; Selección de modelo: optimización de clasificadores para diferentes métricas de evaluación.
Clase 12 | Machine Learning Supervisado - Avanzado
Clasificadores Naif Bayes; Bosques al azar; Árboles de decisión potenciados por gradientes; Redes neuronales;
Aprendizaje profundo (opcional); Fuga de datos; Reducción de dimensionalidad y aprendizaje múltiple;
Agrupación.