Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Programa de especialización:
Big Data and Analytics
Introducción a la programación
en Python
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Temas:
▪ Introducción a Python
▪ Porque Python
▪ Google Colab
▪ Ecosistema Python
▪ Fundamentos
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
El objetivo del modulo es: Revisar los fundamentos para adquirir habilidades
básicas sobre cada paso en el proceso de ciencia de datos.
- Disputa de datos: Obtener, limpiar, transformar los datos
- Exploración y análisis de datos: Que el conjunto de datos tenga sentido,
lograr una descripción completado de los datos.
Al término de esta sesión, Ud. podrá:Tener una visión general del ecosistema
de Python para el análisis de datos.
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
¿Porque Python?
Para implementar proyectos de IA, se
debe usar un lenguaje de programación
que sea estable, flexible y tenga
herramientas disponibles. Desde el
desarrollo hasta la implementación y el
mantenimiento, Python ayuda a los
desarrolladores a ser productivos y
seguros sobre el software que están
creando.
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
¿Porque Python?
Los beneficios que hacen que Python sea
la mejor opción para el aprendizaje
automático y los proyectos basados en
IA incluyen simplicidad y consistencia,
acceso a excelentes bibliotecas y marcos
para IA y aprendizaje automático
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Herramientas más utilizadas en DS y ML
https://www.kdnuggets.com/2019/05/poll-top-data-science-machine-learning-platforms.html
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Instalación: Jupyter notebook
Vamos a instalar la " Anaconda Distribution" con la última versión de Python. La instalación de Anaconda incluirá
todos los mejores paquetes, un excelente editor de código llamado Spyder y otras herramientas para agregar y
actualizar paquetes fácilmente.
https://www.anaconda.com/products/individual
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Google Colaboraty
Google Colab, también conocido como Collaboratory, es un entorno gratuito basado en Jupyter notebook que se
ejecuta en los servidores de la nube de Google.
No requiere instalación ni configuración de Python. Se tiene acceso gratuito a hardware CPU, GPU y TPU. Se puede
compartir el código de manera similar que con Google Drive.
https://www.anaconda.com/products/individual
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Google Colaboraty
Ventajas:
✓ Posibilidad de activar una GPU
✓ Podemos compartir el código fácilmente
✓ Está basado en jupyter notebook y nos resultará un entorno ya conocido
✓ Podemos crear libros en Python 2 ó en 3
✓ Tiene preinstaladas las librerías comunes usadas en data science y la posibilidad de instalar otras necesarias
✓ Al enlazar con nuestra cuenta de Google Drive, podemos leer desde ahí archivos .csv de entrada ó guardar
imágenes de salida, etc.
https://colab.research.google.com/
https://www.anaconda.com/products/individual
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Ecosistema de Python
https://devopedia.org/python-for-scientific-computing
https://www.anaconda.com/products/individual
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Librerias de Python
Algunos toolboxes/librerías populares:
• NumPy
• SciPy
• Pandas
• SciKit-Learn
Bibliotecas de visualización
• Matplotlib
• Seaborn
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Librerias de Python: NumPy
▪ Creado por Travis Oliphant con propósitos científicos.
▪ introduce objetos para arreglos y matrices multidimensionales, así como funciones que permiten realizar
fácilmente operaciones matemáticas y estadísticas avanzadas en esos objetos
▪ proporciona vectorización de operaciones matemáticas en arreglos y matrices, lo que mejora significativamente
el rendimiento
▪ muchas otras bibliotecas de python se basan en NumPy
▪ Para la creación de un Array en Python
▪ Necesitamos importar la librería: import numpy as np
https://numpy.org/
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Librerias de Python: Scipy
▪ colección de algoritmos para álgebra lineal, ecuaciones diferenciales, integración numérica, optimización,
estadísticas y más
▪ Es el paquete principal de rutinas científicas en Python está destinado a funcionar de manera eficiente en
matrices numpy
▪ Construido en NumPy
https://scipy.org/
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Librerias de Python: Pandas
▪ agrega estructuras de datos y herramientas diseñadas para trabajar con marcos de datos para procesar
información y unirlas de diferentes fuentes (Data Frame de R)
▪ proporciona herramientas para la manipulación de datos: remodelación, fusión, clasificación, división,
agregación, etc.
▪ permite manejar datos faltantes
https://pandas.pydata.org/
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Librerias de Python: SciKit-Learn
▪ proporciona algoritmos de aprendizaje automático: clasificación, regresión, agrupación, validación de modelos,
etc.
▪ Construido en NumPy, SciPy y matplotlib
https://scikit-learn.org/stable/
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Librerias de Python: mapplotlib
▪ Es una librería de Python que permite realizar gráficas 2D de excelente calidad
▪ Tiene un conjunto de funcionalidades similares a las de MATLAB
▪ gráficos de líneas, gráficos de dispersión, gráficos de barras, histogramas, gráficos circulares, etc.
▪ Podemos exportar gráficos en los formatos de imágenes mas populares e incluso a formato Latex para su
inclusión en artículos científicos
▪ Su creador John Hunter lo definió: “matplotlib trata de hacer las cosas fáciles y las cosas difíciles posibles”
https://matplotlib.org/stable/index.html
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Librerias de Python: Seaborn
▪ basado en matplotlib
▪ proporciona una interfaz de alto nivel para dibujar atractivos gráficos estadísticos
▪ Similar (en estilo) a la popular biblioteca ggplot2 en R
https://seaborn.pydata.org/
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Google Colaboraty
Google Colab, también conocido como Collaboratory, es un entorno gratuito basado en Jupyter notebook que se
ejecuta en los servidores de la nube de Google.
No requiere instalación ni configuración de Python. Se tiene acceso gratuito a hardware CPU, GPU y TPU. Se puede
compartir el código de manera similar que con Google Drive.
Link: https://colab.research.google.com/
https://www.anaconda.com/products/individual
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Fundamentos: Lenguajes de programación
Es la forma del lenguaje y
Sintaxis describe las posibles
combinaciones de símbolos que
son correctos
Lenguaje
Tiene que ver con el estudio
riguroso desde un punto de vista
Semántica
matemático del significado de
los lenguajes de programación
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Fundamentos: Lenguajes de programación
Definición inicial
Emisor Receptor
Lenguaje
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Fundamentos: Lenguajes de programación
Clasificación según niveles
Primera generación Lenguaje de •Orientado al
microprocesador
maquina (Sistema Binario)
• Ensamblador( Usa
Segunda generación Lenguaje de código nemónico y
también esta
bajo nivel orientado a un
microprocesador
• Orientado para
Lenguaje de que nosotros
entendamos y
Tercera generación alto nivel logremos escribir
los programas
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Fundamentos: Lenguajes de programación
Tipos de Datos básicos
▪ Número Entero (int)
Este tipo de dato se corresponde con números enteros, es decir, sin parte decimal.
▪ Número Decimal (float)
Este tipo de dato se corresponde con números reales con parte decimal. Cabe destacar que
el separador decimal en Python es el punto (.) y no la coma (,).
▪ Caracter (chr)
Este tipo de dato se corresponde con un símbolo tipográfico, es decir, una letra, número,
coma, espacio, signo de puntuación, etc.
▪ Cadena de Texto (str)
Este tipo de datos se corresponde con una cadena de caracteres.
▪ Booleano (bool)
representa valores booleanos o de lógica binaria: Verdadero (True) o Falso (False)
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Fundamentos: Lenguajes de programación
Tipos de Datos básicos
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Fundamentos: Lenguajes de programación
Operadores aritméticos: La combinación de valores, variables , operadores y llamadas a funciones se denomina
expresión. El intérprete de Python puede evaluar una expresión válida.
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Fundamentos: Lenguajes de programación
Estructura de datos
Las estructuras no
primitivas están destinadas
a organizar y manejar
conjuntos de datos
primitivos.
En lugar de almacenar un
solo valor, las estructuras
de datos no primitivas
almacenan una colección
de valores en varios
formatos.
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Fundamentos: Lenguajes de programación
Métodos de lista
Python tiene muchos
Métodos Descripción métodos de lista útiles que
hacen que sea muy fácil
append() añade un elemento al final de la lista trabajar con listas. Estos
son algunos de los métodos
extend() agrega todos los elementos de una lista a otra lista de lista más utilizados.
insert() inserta un elemento en el índice definido
remove() elimina un elemento de la lista
pop() devuelve y elimina un elemento en el índice dado
clear() elimina todos los elementos de la lista
index() devuelve el índice del primer elemento coincidente
count() devuelve el recuento del número de elementos
pasados como argumento
sort() ordenar elementos en una lista en orden ascendente
reverse() invertir el orden de los elementos de la lista
copy() devuelve una copia superficial de la lista
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Programa de especialización:
Big Data and Analytics
Introducción a la programación
en Python
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Metodología: CRISP - DM
Comprensión Comprensión
del Negocio de la Data
Preparación de
la Data
Despliegue
Data Modelamiento
Evaluación
Aplicaciones: Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Tipología de análisis
Categórico - Totales y Porcentajes
- Gráficos: Barra y Pie
Univariado
- Min, Max, Media, Mediana, Moda
- Rangos Intercuartilicos, Varianza,
Desviación Estándar, Coeficiente de
Numérico Variación
- Kurtosis y Asimetria
Para Explicar el - Gráficos: Histograma y Cajas (Boxplot)
Pasado
- Chi Cuadrado
Categórico Vs
Categórico - Gráficos: Barras y de dos Ejes
Numérico Vs - Correlación
Bivariado
Numérico - Scatter Plot (Dispersión)
Categórico Vs - Z Test, T Test, ANOVA
Numérico - Gráficos: Barras y Líneas
Aplicaciones: Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Tipología de análisis
Arboles de
Decisión
Clasificación
Regresión
Logística
SVM
Redes
Neuronales
Para Predecir el Naive Baues
Futuro
Segmentación
Aglomerativa
Divisiva
Estimación
K-means
Regresión
Reglas de Múltiple
Asociación
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Tipo de variables
Tipos de variables:
Numéricas:
Nominales: Ordinales:
Sueldo, Edad, Línea de
Sexo, Distrito de Residencia, NSE, Grado de Instrucción,
Crédito, Número de segundos
Estado Civil. Tipo de Tarjeta de crédito.
de llamadas por móvil.
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Aplicaciones: Metodología
Dentro de un proyecto de Data Mining podemos diferenciar las siguientes fases:
Comprensión Comprensión Preparación
Modelado Evaluación Implementar
del Negocio de los Datos de los Datos
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Metodología: Fases del Data Mining
Conocimiento del negocio:
Determinación
Determinar los
Evaluar la de los Objetivos Elaborar el Plan
Objetivos del
situación de Minería de del Proyecto
Negocio
Datos
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Metodología: Fases del Data Mining
Comprensión de los datos:
Disponibilidad
Describir los Explorar los Calidad de los
Recolectar Datos Datos Datos Datos
Iniciales
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Metodología: Fases del Data Mining
Preparación de los datos:
Data •Obtener datos
de diferentes
Collecting fuentes
Data •Resuelve conflictos entre
datos.
Cleaning •Elimina Outliers
•Transformación y
Data consolidación de los
Transformation datos
Data •Selección de
características
Reduction
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Metodología: Fases del Data Mining
Tipos de variables:
Numéricas:
Nominales: Ordinales:
Sueldo, Edad, Línea de
Sexo, Distrito de Residencia, NSE, Grado de Instrucción,
Crédito, Número de segundos
Estado Civil. Tipo de Tarjeta de crédito.
de llamadas por móvil.
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Metodología: Fases del Data Mining
Identificar Outliers :
• Revisar los
Rangos: rangos de
Cada variable
• Realizar el
Clustering: ejercicio con
pocos grupos.
• Variables
nominales con
Categorías. menos de 1%
de frecuencia.
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Metodología: Fases del Data Mining
Visualización de variables:
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Metodología: Fases del Data Mining
Modelamiento:
Técnica Modelo
Modelo 1 1
Modelo
Escoger la Técnica
Training de Modelado Conjunto Score
Data (Ponderado) Data
Modelo
Técnica 2
Modelo 2
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Metodología: Fases del Data Mining
Evaluación del modelo:
Determinar
Evaluar los
los Próximos
Resultados
pasos
Revisar el Proceso
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Implementación/Despliegue:
Implementación/Despliegue:
Proceso de implementación de modelos
Planificar Implementar Producción Post Producción
- Reportes de m onitoreo
Gestión de
- Definición alcance - Generar lógica de - Conformidad de
variables entregables - Dar de baja al
modelos
Control / Monitoreo
- Línea base del proyecto
- Mejora de procesos - Criterios de Evaluación m odelo analíticos
- WBS
- Validar inform ación
◼ Solicitar ◼ Dimensionamiento. ◼ Medir y validar el ◼ Administrar el
documentación. ◼ Pruebas en desempeño del ciclo de vida de
◼ Gestión de desarrollo modelo. los modelos
riesgos. analíticos.
◼ bitácora de errores ◼ Schedule de
y lecciones modelo ◼ Cuando un
aprendidas. modelo debe ser
◼ Documentar reemplazado.
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Que afecta el desempeño del modelo
• Cambios en el mercado: Cambian los
valores característicos rápidamente.
Estos cambios afectan a todas las fuente
de datos.
• Criterio de selección diferente: Se toma
información de un estudio pasado, los
reglas anteriores no guardan relación
con los objetivos del nuevo modelo.
• variación en la creación de datos: Este
es un problema sólo cuando tomamos
en la implementación, los datos de una
fuente diferente a la del desarrollo del
modelo.
Proceso de seguimiento Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Proceso de seguimiento de modelos
Extracción de los
Fuentes Post Producción Gestión de modelos
datos
Control de Calidad de los Gestión de
calidad de datos modelos indicadores
12,000
10,000
Mo n itoreo de las variables
DWH 8,000
Var1 Var2 Var3 Var4 ◼ Administrar el ciclo de
6,000
vida de los modelos
Var1
analíticos.
4,000
2,000
DM1 -
◼ Cuando un modelo
Var2 debe ser reemplazado.
DM2
Var3
DM3 Var4
Beneficios
Estabilidad poblacional Tablero Indicadores
Indicadores
Resp1-2 Responsable 1 Responsable 1 Responsable 1
Centro de Tecnologías de Información y Comunicaciones
Universidad Nacional de Ingeniería
Técnicas Estadísticas
Busca describir las relaciones entre varias variables (respuestas y descriptores) que permiten analizar un
Ecuaciones estructurales fenómeno de interés, teniendo en cuenta la estructura de covarianzas existente entre ellas.
Es una técnica utilizada para reducir la dimensionalidad de un conjunto de datos. Se emplea sobre todo en
Componentes principales análisis exploratorio de datos y para construir modelos predictivos.
Es una técnica estadística de reducción de datos usada para explicar la variabilidad entre las variables
Análisis factorial observadas en términos de un número menor de variables no observadas llamadas factores.
Algoritmo de agrupamiento / Clusters Es un procedimiento de agrupación de una serie de objetos de acuerdo con un criterio de cercanía.
Su objetivo es analizar si existen diferencias significativas entre grupos de objetos respecto a un conjunto de
Análisis discriminante variables medidas sobre los mismos. La naturaleza de las variables debe ser para el caso de la dependiente
categórica y para la(s) independiente(s) cuantitativa.
Su objetivo es buscar las relaciones que pueda haber entre dos grupos de variables y la validez de las mismas.
Correlación canoníca Predice múltiples variables dependientes a partir de múltiples independientes.
El Análisis de Correspondencias es una técnica estadística que se utiliza para analizar, desde un punto de vista
Análisis de correspondencia gráfico, las relaciones de dependencia e independencia de un conjunto de variables categóricas a partir de los
datos de una tabla de contingencia.
El objeto de un análisis de regresión es investigar la relación estadística que existe entre una variable
Regresión múltiple dependiente (Y) y una o más variables independientes (X 1, X2, X3 , ... ).
Es un modelo de regresión para variables dependientes o de respuesta binomialmente distribuidas. Es útil
Regresión logística para modelar la probabilidad de un evento ocurriendo como función de otros factores.
Se llama Series de Tiempo a un conjunto de observaciones sobre valores que toma una variable (cuantitativa)
Series de Tiempo en diferentes momentos del tiempo. se utilizan para predecir lo que ocurrirá con una variable en el futuro a
partir del comportamiento de esa variable en el pasado.