lenguajes de programación -...
TRANSCRIPT
![Page 1: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/1.jpg)
alumni.uoc.edu
uoc.edu alumni.uoc.edu
Lenguajes de programación
¿Qué lenguajes de programación necesita el científico de datos?
![Page 2: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/2.jpg)
alumni.uoc.edu
¿Cuáles son los lenguajes utilizados hoy?
![Page 3: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/3.jpg)
alumni.uoc.edu
https://www.tiobe.com
3
¿Cuáles son los lenguajes utilizados hoy?
El índice TIOBE, utilizado para medir la popularidad de los lenguajes, clasifica 250 lenguajes.
![Page 4: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/4.jpg)
alumni.uoc.edu 4
Tipos de lenguajes
Compilados
• El código fuente se transforma a un ejecutable entendible para la máquina en determinada arquitectura (HW+SO).
• Las variables tienen que pertenecer a un tipo determinado (fuertemente tipadas).
Interpretados
• Utilizan funciones de más alto nivel.
• Son independientes de la plataforma.
• Los tipos de las variables pueden ir cambiando en forma dinámica durante la ejecución del programa.
Java (Maquina Virtual)
• Se consideran “compilados” porque el fuente se transforma para ser ejecutado por la máquina virtual en una arquitectura determinada.
![Page 5: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/5.jpg)
alumni.uoc.edu
Seleccionando los más utilizados en la ciencias de datos y considerando su popularidad...
![Page 6: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/6.jpg)
alumni.uoc.edu LENGUAJE
Li cen cia
Tipo Modelo Exten siones
Conexiones Otros
Python PSFL
Interpretado Tipado dinámico
C/C++ Objeto-Funcional-Imperativo (Multiparadigma)
Librerías para conectar con BD SQL. Y para las aplicaciones Big Data más populares. Servicios web.
Bibliotecas de uso general. Fácil aprender
R GPL
Interpretado. R/C/C++ /Fortran
Objeto-Funcional
Librerías para conectar con BD SQL. Y para las aplicaciones Big Data más populares. Servicios web.
Comunidad estadística
C/C++ GPL
Compilado Fuertemente tipado
-- Eficiencia. Disponibilidad
Imperativo /Multiparadigma
Librerías para conectar con BD SQL. No siempre hay interfaz con C, si con C++, Servicios web.
Java/ JavaScript
GPL
Compilado / Interpretado
C / C++ Portabilidad Objeto/ Multiparadigma
Librerías para conectar con BD SQL. Y para las aplicaciones Big data más populares. Servicios web.
GO BSD
Compilado Fuertemente tipado
C Muy buen rendimiento y con facilidad de aprendizaje
Objeto/Multipara- digma/concurrente
Librerías para conectar con BD SQL. Se están desarrollando librerías y conexiones. Servicios web.
![Page 7: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/7.jpg)
alumni.uoc.edu
Python
• Preferido por ingenieros y científicos en computación.
• Trabaja con todo tipo de datos.
• Lenguaje de propósito general.
R
• Preferido por los estadistas y matemáticos
• Trabaja con datos filtrados y específicos
• Específico para ciencia de datos.
https://pypi.python.org/pypi 128.324 paquetes https://cran.r-project.org/ 12.088 paquetes
Lenguajes recomendados para la ciencia de datos
![Page 8: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/8.jpg)
alumni.uoc.edu
¿Dónde están los datos?
![Page 9: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/9.jpg)
alumni.uoc.edu 9
WEB: HTML/ XML • Web scrapping • Lenguajes con
gestión de HTML /XML
Service Rest/ SOAP • Web Services • Manejo de JSON /
XML-SOAP
Base de datos Relacionales • SQL • Lenguaje con
conexión a DB
Repositorios NOSQL • Mongo DB / ELKL /
Dinamo DB / • Logs, txt, CSV • Amazon S3
Orígenes de los datos
![Page 10: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/10.jpg)
alumni.uoc.edu 10
NOSQL
• Datos no estructurados
• Volumen extremadamente grande
Bases de datos Relacionales
• Datos estructurados
• Gran volumen de datos
• Cambio en los análisis a través del tiempo
• Publicar los análisis
Ficheros txt/csv
• Pocos datos • Análisis simple • No esperamos
repetir el análisis
Paquetes estadísticos
(SPSS,SAS, Stata,R)
• Tamaño mediano de datos
• Los datos encajan bien con el paquete estadístico
Tipos de almacenamiento de datos
![Page 11: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/11.jpg)
alumni.uoc.edu
¿Qué hace un científico de datos?
![Page 12: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/12.jpg)
alumni.uoc.edu 12
¿Qué hace un científico de datos?
Plantear preguntas
Obtener y limpiar los
datos Explorarlos Establecer
modelos Publicar
resultados
![Page 13: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/13.jpg)
alumni.uoc.edu
OBTENER y LIMPIAR DATOS
Datos en crudo Proceso Datos
Procesados
Origen
procesado
Destino
Etapas del proceso Plantear
preguntas
Obtener y
limpiar los
datos
Explorarlos
Establecer
modelos
Publicar
resultados
• PostgresOracle, Amazon Redshift
• TXT CSV XLS
• ELK, Cassandra,MongoDB, S3
• XML / HTML / Rest API WE
B NO SQL
SQL Ficheros
![Page 14: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/14.jpg)
alumni.uoc.edu
OBTENER y LIMPIAR DATOS Problemas a resolver… Plantea
r pregunt
as
Obtener y
limpiar los
datos
Explorarlos
Establecer
modelos
Publicar
resultados
Datos no estructurados
Tratamientos de datos nulos
Fechas, horas, zonas horarias
Relacionar/Link de datos.
Integración de datos de diferentes fuentes
Volumen/Variedad de los datos
![Page 15: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/15.jpg)
alumni.uoc.edu
OBTENER y LIMPIAR DATOS Tratando con un gran volumen de datos: Map-Reduce, Hadoop, Spark
Plantear
preguntas
Obtener y
limpiar los
datos
Explorarlos
Establecer
modelos
Publicar
resultados
![Page 16: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/16.jpg)
alumni.uoc.edu 16
Paquetes Python y R P
ytho
n Requests: accesos HTTP, GET/POST/PUT/DELETE,etc. BeautifulSoup/ Scrapy : webscraping gestionar XML / HTML, búsquedas Datetime, pytz: fechas y zonas horarias. Re: expresiones regulares. Pattern: Búsquedas Twitter/Wikipedia/Google Hadoop Streaming, mrjob, PySpark, rehive.
R httr-XML: webscraping
Jsonlite: gestionar documentos JSON Stringr: Manejo de cadenas. Tidyr: para limpiar datos Lubridate: Fechas y horas Rmysql, PostgreQL, MySQL , Minitab/S/SAS/SPSS/Stat/Systat RMongo/rmongodb HadoopStreaming, SparkR, Rhive
OBTENER y LIMPIAR DATOS Plantea
r pregunt
as
Obtener y
limpiar los
datos
Explorarlos
Establecer
modelos
Publicar
resultados
![Page 17: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/17.jpg)
alumni.uoc.edu
1. ¿Qué hace un científico de datos?
Plantear preguntas
Obtener y limpiar los
datos Explorarlos Establecer
modelos Publicar
resultados
![Page 18: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/18.jpg)
alumni.uoc.edu
Explorar los datos ¿Cómo exploramos los datos? Plantea
r pregunt
as
Obtener y
limpiar los
datos
Explorarlos
Establecer
modelos
Publicar
resultados
Seleccionar, buscar, filtrar, agrupar, sumar, ordenar, hacer rangos
Cálculos estadísticos, operaciones algebraicas.
Gráficos: Multivariados (1D/2D/3D). Espaciales. Temporales
Grupos de datos, jerarquías.
Datos en red
Observar / Comparar distribuciones / Relacionar datos y patrones
![Page 19: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/19.jpg)
alumni.uoc.edu
Explorar los datos Gráficos en R Plantea
r pregunt
as
Obtener y
limpiar los
datos
Explorarlos
Establecer
modelos
Publicar
resultados
BA
SE
plot hist boxplot
LATT
ICE
xyplot bwplot levelplot G
GP
LOT2
qplot() Ggplot()
https://www.r-graph-gallery.com/
![Page 20: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/20.jpg)
alumni.uoc.edu
Explorar los datos Gráficos en R Plantea
r pregunt
as
Obtener y
limpiar los
datos
Explorarlos
Establecer
modelos
Publicar
resultados
![Page 21: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/21.jpg)
alumni.uoc.edu
Explorar los datos Gráficos en R Plantea
r pregunt
as
Obtener y
limpiar los
datos
Explorarlos
Establecer
modelos
Publicar
resultados
![Page 22: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/22.jpg)
alumni.uoc.edu
Explorar los datos Gráficos en R Plantea
r pregunt
as
Obtener y
limpiar los
datos
Explorarlos
Establecer
modelos
Publicar
resultados
![Page 23: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/23.jpg)
alumni.uoc.edu
Explorar los datos
Gráficos en R Plantear
preguntas
Obtener y
limpiar los
datos
Explorarlos
Establecer
modelos
Publicar
resultados
![Page 24: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/24.jpg)
alumni.uoc.edu
Explorar los datos Gráficos en R Plantea
r pregunt
as
Obtener y
limpiar los
datos
Explorarlos
Establecer
modelos
Publicar
resultados
![Page 25: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/25.jpg)
alumni.uoc.edu
Explorar los datos Gráficos en R Plantea
r pregunt
as
Obtener y
limpiar los
datos
Explorarlos
Establecer
modelos
Publicar
resultados
![Page 26: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/26.jpg)
alumni.uoc.edu
Explorar los datos Gráficos en R Plantea
r pregunt
as
Obtener y
limpiar los
datos
Explorarlos
Establecer
modelos
Publicar
resultados
![Page 27: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/27.jpg)
alumni.uoc.edu
Explorar los datos
Paquetes Python y R P
ytho
n Panda: Utilizado para transformación de datos. Agrupados, joins, series de tiempo. Numpy / Scipy: funciones numéricas, arreglos multidimensionales. Matplotlib: gráficos 2D, de líneas, histogramas, torta, etc. Statsmodel: exploración estadística. Seaborn: heat maps, time series, y violin plots.
R Dplyr: Permite tratar datos, con
modo “sql”: select, filter, arrange, summarize, group by, mutate. Base, lattice, ggplot2 Stringr: manejo de cadenas. lubridate: fechas / horas. Xda: análisis de variables dependientes vs independientes, stats, gráficos, reemplazo de nulos.
Plantear
preguntas
Obtener y
limpiar los
datos
Explorarlos
Establecer
modelos
Publicar
resultados
![Page 28: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/28.jpg)
alumni.uoc.edu
¿Qué hace un científico de datos?
Plantear preguntas
Obtener y limpiar los
datos Explorarlos Establecer
modelos Publicar
resultados
![Page 29: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/29.jpg)
alumni.uoc.edu 29
ESTABLECER MODELOS
Aprendizaje No supervisados
Clustering
Análisis de componentes
principales
Reglas asociativas
Aprendizaje Supervisado
Clasificación
Regresión
Métodos de Machine Learning
K-Nearest neighbor
Support Vector Machines
Decisión trees Ensemble methods
Random forests
Neural networks
Plantear
preguntas
Obtener y
limpiar los
datos
Explorarlos
Establecer
modelos
Publicar
resultados
![Page 30: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/30.jpg)
alumni.uoc.edu
Explorar los datos
Paquetes Python y R P
ytho
n Scikit-learn: supervisados y no supervisados. TensorFlow: redes neuronales, reconocimiento de imágenes. Theano: evalúa exp.matemáticas Optimizaciones: uso de GPU PyBrain: redes neuronales, aprendizaje no supervisado.
R Caret: Clasificación y regresión
Ranger / Randomforest: modelo muy usado para clasificar. E1071: Support Vector Machines con gpu. Xgboost: modelos lineales, árboles. Rpart: particionado para clasificación. Glmnet: modelos lineales
Plantear
preguntas
Obtener y
limpiar los
datos
Explorarlos
Establecer
modelos
Publicar
resultados
![Page 31: Lenguajes de programación - alumni.uoc.edualumni.uoc.edu/opencms_alumni/opencms/galeries/documents/Cicles/... · digma/concurrente Librerías para conectar con BD SQL. Se están](https://reader030.vdocumento.com/reader030/viewer/2022021622/5baf21ec09d3f274188b5e57/html5/thumbnails/31.jpg)
alumni.uoc.edu
AlumniUOC @UOCalumni
alumni.uoc.edu