Está en la página 1de 13

ESPECIALIZACIÓN: ANALÍTICA DE DATOS CON PYTHON

Profesor: Eduardo Escofet

FECHA DE INICIO: 6 SEPTIEMBRE DE 2021

Plataforma Zoom / GoogleMeet

Total de horas: 22 horas


1. Introducción a Python para la analítica de datos. Ingeniería (8 horas)
Lunes (6 Setiembre 8-10 pm-hora peruana)
Miércoles (8 Setiembre 8-10 pm-hora peruana)
Viernes (10 Setiembre 8-10 pm-hora peruana)
Lunes (13 Setiembre 8-10 pm-hora peruana)
2. Análisis de datos con Python (6 horas)
Miércoles (15 Setiembre 8-10 pm-hora peruana)
Viernes (17 Setiembre 8-10 pm-hora peruana)
Lunes (20 Setiembre 8-10 pm-hora peruana)
3. Predicción con Python. Fundamentos de la Ciencia de Datos (8 horas)
Miércoles (22 Setiembre 8-10 pm-hora peruana)
Viernes (24 Setiembre 8-10 pm-hora peruana)
Lunes (27 Setiembre 8-10 pm-hora peruana)
Miércoles (29 Setiembre 8-10 pm-hora peruana)

Consideraciones
La especialización está orientada a personas que comienzan a adentrarse en la analítica de datos.
Es recomendable el conocimiento de programación en Python, pero no es excluyente.
La especialización cuenta con tres cursos, los que deben ser aprobados con un 70% (asistencia y eva-
luación).
Para el certificado de la especialización debe aprobar todos los cursos.
Podrá pausar y continuar la especialización en cualquier momento. No podrá hacer lo mismo dentro
de algún curso. Las horas son indicativas, el contenido es integrado.
Puede saltar un curso si presenta un examen de suficiencia.
El modelo de evaluación será mediante cuestionario y trabajos individuales.
ÍNDICE
1. Introducción a Python para la analítica de datos. Ingeniería
2. Análisis de datos con Python
3. Predicción con Python. Fundamentos de la Ciencia de Datos
4. Referencias
5. Herramientas

INTRODUCCIÓN A PYTHON PARA LA ANALÍTICA DE DATOS. INGENIERÍA

Conocimientos rudimentarios de estadísticas, SQL e inglés recomendables aunque no son obligato-


rios.
No se cubrirán elementos de automatización mediante Scripting, ni Inteligencia Artificial o Aprendi-
zaje Automático, desarrollo Web, no módulo SciPy, ni profundización en trabajo con bases de datos
por una cuestión de tiempo y tópicos.

Temas:
Estructuras esenciales de datos y control
Programación Orientada a Objetos y excepciones
Trabajo con ficheros CSV, texto, Excel y Pickle. Logging
Paquetes/módulos esenciales (itertools, re, timeit, collections, math)
Introducción al paquete numpy
Introducción al paquete pandas
Introducción al uso de matplotlib
Trabajo con base de datos relacionales y SQL
Pruebas unitarias de código

Desarrollo de los temas del curso a través de ejemplos KISS y prácticos. Evaluación con cuestionario teó-
rico-práctico. Trabajo individual con un problema de mediana complejidad.

Introducción a los elementos básicos del proceso de Data Engineering, Data Analysis and Data Science.
Análisis exploratorio y tecnologías asociadas. Sus especificidades y diferencias.

Algunas definiciones:
De acuerdo a la definición de Google y Coursera Data Analytics is The Science of Data.
Los datos son una colección de hechos que pueden ser utilizados para arribar a conclusiones, hacer
predicciones y apoyar la toma de decisiones.
La ciencia de datos es la creación de nuevas vías de modelar y entender lo desconocido utilizando da-
tos en bruto.
El análisis de datos es la recolección, transformación y organización de los dator para arribar a conclu-
siones, predecir y guiar las decisiones informadas.

El flujodetrabajocon los datos tienes cuatro etapas principales:


Recolección y almacenamiento de los datos
Preparación de los datos
Exploración y visualización
Experimentación y predicción

La Ingenieríadedatoscomo las capacidades involucradas en hacer que los datos estén listos para ser uti-
lizados por analistas de datos y científicos de datos. La ingeniería de datos implica:
Elaborar estrategias y crear diccionarios de datos que pueden convertirse en una referencia sobre el
significado de los datos, su relación con otros datos, su uso y su formato.
Limpieza de datos para que puedan estandarizarse en todas las fuentes de datos y ser confiables cuan-
do se utilizan en visualizaciones y algoritmos.
Transformación de estructuras de soporte de datos y su concentración o distribución.
Importar datos de fuentes no estructuradas y transformar los datos en un formato estructurado y estan-
darizado.
Crear tuberías o canales que consolidan datos de múltiples fuentes y los ponen a disposición para el
análisis y la visualización de datos.

Técnicamente el ingenierodedatos se encarga de la ingesta de datos de diferentes fuentes, optimización


de las bases de datos para el análisis y gestión de la corrupción de datos. Los ingenieros de datos desarro-
llan, construyen, prueban y mantienen arquitecturas como bases de datos y sistemas de procesamiento a
gran escala para procesar y manejar cantidades masivas de datos (ETL, ELT, pipelines, structured, semi-
structured, unstructured).

El análisisdedatosanaliza las relaciones entre los conjuntos de datos y dentro de esos conjuntos para en-
contrar patrones. El análisis de datos involucra también la visualización de datos. La visualización de da-
tos es el proceso de representar datos en un formato visual. . Entre sus acciones incluye:
Reunirse con las partes interesadas para escuchar sus necesidades de informes y visualización de da-
tos y documentar las solicitudes.
Determinar qué canalizaciones de datos están disponibles y si las canalizaciones existentes podrían sa-
tisfacer la necesidad.
Coordinar con el equipo de ingeniería de datos para crear nuevas canalizaciones según sea necesario.
Traducir estas questiones en informes y visualizaciones estandarizados que puedan extraerse en el fu-
turo.

La cienciadedatos es un campo interdisciplinario que utiliza métodos, procesos, algoritmos y sistemas


científicos para extraer conocimientos e ideas de muchos datos estructurales y no estructurados. La cien-
cia de datos está relacionada con la minería de datos, el aprendizaje automático y los macrodatos. Algu-
nas de las funciones a implementar son:
Desarrollo de algoritmos
Aprendizaje automático
Inteligencia artificial
Análisis Predictivo
Procesamiento natural del lenguaje

Los científicosdedatosintervienen en las tres últimas etapas del flujodetrabajo: preparan los datos se-
gún sus necesidades de análisis, los exploran, construyen visualizaciones perspicaces y, a continuación,
ejecutan experimentos o construyen modelos predictivos. Los ingenieros de datos sientan las bases que
hacen posible la actividad de la ciencia de los datos.

Pueden ser consideradas como tres las dimensiones de la analítica de datos:


Estadística = Pocas decisiones importantes bajo incertidumbre
Machine Learning / AI = Automatizar muchas decisiones importantes bajo incertidumbre
Analítica = Número desconocido de decisiones, en busca de inspiración

ANÁLISIS DE DATOS CON PYTHON

Análisis de datos es el proceso de inspección, limpieza, transformación y modelado de datos para la toma
de decisiones. Introducción al análisis de datos con ejemplos en Python.
Modelado de datos
Ajuste de modelo de datos

Roles del analista de datos:


Traer datos
Hacer análisis iniciales
Crear las visualizaciones

Algunas habilidades del analista de datos:


Minería de datos
Consultas a orígenes de datos
Modelados de datos
Diagramas de flujo de trabajo
Visualización

Las seis etapas delprocesodeanálisis dedatos son: Averiguar, Preparar, Procesar, Analizar, Compartir
y Actuar.
- Averiguar: Reto Empresarial/Objetivo/Pregunta
- Preparar: Generación, recogida, almacenamiento y gestión de datos
- Procesar: Limpieza de datos/integridad de datos
- Analizar: Exploración, visualización y análisis de datos
- Compartir: Comunicar e interpretar los resultados
- Actuar: Poner en práctica los conocimientos para resolver el problema

Detallesdelastareasdelosanalistas
Los analistas formulan preguntas para definir tanto el problema que había que resolver como lo que
equivaldría a un resultado satisfactorio.
A continuación, se preparan construyendo una línea de tiempo y recogiendo datos con encuestas a los
empleados, que debían ser inclusivas.
Procesan los datos limpiándolos para asegurarse de que estaban completos, eran correctos, pertinentes
y no contenían errores ni valores atípicos.
Analizan los datos limpios de las encuestas a los empleados. A continuación, los analistas comparten
sus conclusiones y recomendaciones con los jefes de equipo. A continuación, la dirección actúa sobre
los resultados y se centra en mejorar las áreas clave.

PREDICCIÓN CON PYTHON. FUNDAMENTOS DE LA CIENCIA DE DATOS

Introducción al análisis predictivo, las técnicas de regresión lineal y su interpretación:


Regresión lineal simple
Regresión lineal múltiple
Interpretación de resultados
Clasificación y agrupamiento
Series de tiempo

Hojaderutadelanálisispredictivo
Comprensión del negocio
Comprensión de los datos
Preparación de los datos
Modelado
Evaluación
Despliegue

FundamentosdelaCienciadeDatos
Fundamentos de ciencias de datos. Estrategias.
Ciencia de Datos es un campo interdisciplinario que involucra métodos científicos, procesos y sistemas
para extraer conocimiento o un mejor entendimiento de datos en sus diferentes formas, ya sean estructura-
dos o no estructurados.
Existen varias metodologías para desarrollar proyectos de ciencia de datos, entre los que destacan CRISP-
DM (Cross-industry standard process for data mining) o TDSP (Team Data Science Process)
Para desarrollarse en el ámbito de la ciencia de datos es necesario contar con conocimientos en el área de
estadística; manejar un lenguaje de programación afin y ser experto en el área de dominio (finanzas, mer-
cadotecnia, ventas, etc.)
Las herramientas para la aplicación de la ciencia de datos, teniendo como opciones comerciales a SAS,
Watson de IBM, Oracle Analytics Cloud, SAP Cloud Analytics, DataRobot, etc., pero también en el área
de Open Source: Anaconda, Spark, Scikit-learn, TensorFlow, etc.

REFERENCIAS

1. A Beginners Guide to Python 3 Programming. John Hunt. Springer, 2020.


2. A Python Data Analyst's Toolkit. Gayathri Rajagopalan. Apress, 2021.
3. Advanced Forecasting with Python. Joos Korstanje. Apress, 2021.
4. Cleaning Data for Effective Data Science. David Mertz. Packt Publishing, 2021.
5. Data Engineering with Python. Paul Crickard. Packt Publishing, 2020.
6. Data Science from Scratch, 2nd Edition. Joel Grus. O’Reilly, 2019.
7. Expert Python Programming, 4th Edition. Michal Jaworski. Packt Publishing, 2021.
8. Introduction to Python for Science and Engineering. David J. Pine. CRC Press, 2019.
9. Learning Predictive Analytics with Python. Ashish Kumar. Packt, 2016.
10. Python and R for the Modern Data Scientist. Rick J. Scavetta. O’Reilly, 2021.
11. Python Data Analysis, 3d Edition. Avinash Navlani. Packt, 2021.
12. Python Data Analytics, 2nd Ed. Fabio Nelli. Apress, 2018.
13. Python: Advanced Predictive Analytics. Ashish Kumar. Packt, 2017.
14. The Data Engineering Cookbook: Mastering The Plumbing Of Data Science. A. Kretz, 2019.

HERRAMIENTAS

Python superior a la versión 3.6+ con Jypyter Notebook o JupyterLab


Recomendado plataforma Anaconda o Miniconda sobre Windows o Linux (Instrucciones sobre Ma-
cOS no será dadas).
Módulos Numpy, Scipy, Scikit-learn, Pandas, Matplotlib, SQLAlchemy y los más comunes.
PyCharm Community, se puede utilizar Spyder, Visual Code o editores de texto como Sublime o
Atom si desean, las especificidades de cada uno no serán abordadas.
En el caso de utilizar Windows, para versiones antiguas usar Cygwin, para modernas usar WSL.
Prácticadelaespecialización

Introducción al curso
- Objetivo: Que el estudiante comprenda el ecosistema Python para el desarrollo de pro-
yectos analíticos de datos, que concluya con los conocimientos y habilidades necesarias
para aplicarlo en la resolución de problemas reales de pequeña y mediana compejidad.
- Desglose de la bibliografía (materiales disponibles en Google Classroom)
- Estructura de la especialización y las evaluaciones: Tres cursos, cada uno evaluable de
forma individual, 70% pasable, los cursos son integrados e incrementales.

Ubicación en ecosistema de desarrollo


- IDEs y Editores: PyCharm Community, Spyder, Visual Studio Code, nteract, jupyter Lab,
Sublime

RStudio
Spyder
Integración de Spyder con Jupyter Notebook
https://docs.spyder-ide.org/current/plugins/notebook.html

Visual Studio Code


PyCharm

nteract

- Herramientas de alto y bajo nivel: Windows con WSL, Linuxes, AWK, JQ, cURL, Shell
scripting
En el caso de Windows aparte de shell scripting (bash, ksh, etc.) pueden utilizar PowerS-
hell para la automatización de tareas y procesamiento de datos raw.

Top GNU Linux distros:


MacOS* Windows* Servidores Desarrollo Desktops
Elementary ZorinOS RedHat OpenSUSE KDE Plasma
Deepin Linux Mint Suse Fedora Xfce
Solus Kubuntu Debian Manjaro LXQt
Ubuntu Budgie Linux Lite CentOS Kali Linux Gnome
* Se ve como ...
Algunas de las herramientas más recomendadas para la analítica de datos son
- Hojas de cálculo (Microsoft Excel, Softmaker PlanMaker, LibreOffice Calc y WPS
Spreadsheets)
- Paquetes estadísticos que incluyen módulos de cálculo probabilístico, estadístico y baye-
siano (SAS, SPSS, Minitab, JASP y Jamovi)
- Lenguajes / Ecosistemas complementarios (Julia, R, SQL, XQuery y NoSQL)
- Bibliotecas para la ciencia y analítica de datos (Numpy, Pandas, MatplotLib, SciPy, Ke-
ras, Scikit-learn, PyTorch, Tensorflow, Scrapy, BeautifulSoup, Seaborn y Plotly)
- Sitios recomendados: realpython.com, programiz.com, docs.python-guide.org, geeksfor-
geeks, leetcode, edabit

Programación

“Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en la le-


gibilidad de su código. Se trata de un lenguaje de programación multiparadigma, ya que
soporta orientación a objetos, programación imperativa y, en menor medida, programación
funcional.”

- Destacable en Python: list comprehension, generators, operador walrus y ternario, zip,


iter, next (ver ejemplos y ejercicios)
- Programación funcional: map, filter, reduce
- Programación orientada a objetos: Definición de clases y uso de tuplas
- Ejercitación sobre funcionalidades recurrentes y necesarias en problemas de analítica de
datos
- CPython, PYPY, Pyston, Numba, Python 3.11
- Modularización, Logging & Testing

Principiosdelaprogramaciónfuncional
Uso de funciones: Como su nombre indica, todo se construye por medio de funciones. Esta
forma de trabajar no solo es sencilla, ordenada, clara, fácil de testear. La programación
funcional usa la estrategia divide y vencerás para prácticamente todo.
Funciones de primera clase: Las funciones son tratadas como una variable más. Incluso
pueden ser devueltas.
Funciones puras: Totalmente predictivo, los mismos datos de entrada producirán los mis-
mos datos de salida. Puedes sustituir el parámetro de entrada de sin que ello altere el flujo
del programa.
Recursividad: Las funciones se pueden llamar a si mismas simplificando tareas como reco-
rrer árboles de datos o la gestión de bucles controlados.
Inmutabilidad: No hay variables, solo constantes. Personalmente comprender su potencial
y llevarlo a la práctica fue como darle al reset de mi cerebro; tuve que re-aprender a usar
variable. Anécdota a parte; ¿donde suele fallar el software? En gran mayoría de las ocasio-
nes viene por una variable que a sido cambiada. Esto provoca que un bloque de código se
ejecute con unas condiciones no previstas por nadie en el mundo mundial, toca revisar ca-
da variable en diferentes valores hasta que encontramos al culpable. Os hago una refle-
xión: ¿Y si esas variables nunca fueran modificadas? O siendo más prácticos, ¿y si crea-
mos una nueva constante de cada modificación? ¿Y si… os digo que a nivel de rendimien-
to… es más eficiente? Es un concepto muy interesante de aplicar.
Evaluación perezosa (no estricta): En la programación funcional podemos trabajar con ex-
presiones que no han sido evaluadas, o dicho de otra manera, podemos disponer de varia-
bles con operaciones cuyo resultado aún no se conoce. A esto se le denomina evaluación
no estricta. Un efecto secundario es el aumento de rendimiento, y otra es que podemos rea-
lizar locuras como hacer cálculos con operaciones muy complejas o listas infinitas sin rea-
lizar calculos. ¿Cómo es esto posible? Porque se trabaja con expresiones matemáticas, solo
se calcula el valor cuando lo necesitas como por ejemplo al realizar un print.

¿Qué te aporta como programador?


Te estarás diciendo en estos momentos: “Ya se programación orientada a objetos, ¿que ga-
no aprendiendo técnicas funcionales?”.
Simplificar la creación de concurrencias. Una de sus grandes ventajas y por la cual se hizo
tan popular con Lisp para crear redes neuronales. Podemos trabajar simultáneamente con
diversas funciones sin efectos secundarios.
Disminución de problemas. Las variables son constantes, son inmutables. En consecuen-
cia, no hay errores de programación derivados del llamado “estado global mutables” (esta-
do modificable por todo el código), como puede ser el caso de los proyectos orientados a
objetos.
Rápido de testear, sabemos que parámetros podemos dar a una función y que resultados es-
peramos.
Fácil de combinar con la programación imperativa y orientada a objetos. En este caso
Python adopta herramientas nativas desde la versión 3.0 .
Código dócil de asimilar y leer. Es más cómodo entender una función que la estructura de
un objeto. Por supuesto hablo desde el punto de vista de una persona que acaba de llegar a
un proyecto o esta aprendiendo a programar.

Ingeniería
- Creación de tuberías
- Trabajos con bases de datos
- Búsqueda y limpieza de datos (survey proc, text mining, scraping, data cleaning)
- Referencias de tecnologías emergentes (Spark, Hadoop, Stream, Arrow)

También podría gustarte