13
Diplomado Machine learning and data science Sistemas, programación, data

Diplomado Machine learning and data science - Inicio · Introducción al Análisis y Visualización de Datos con Python El objetivo de este módulo es dotar al estudiante con la capacidad

Embed Size (px)

Citation preview

DiplomadoMachine learningand data scienceSistemas, programación, data

Bienvenido,Resumen del curso

Martes a Jueves

120 horas totales

$ 3'800.000

Universidad Nacionalde ColombiaSede Bogotá

6:00pm a 9:00pm

- 120 presenciales

Inicio

Cierre

20 de Marzo 201821 de Junio 2018

Machine Learning and Data ScienceUna introducción práctica alaprendizaje computacionaly al análisis de datos

Presentación

Diplomado

El aprendizaje computacional (o machine learning en Inglés) estudia los sistemas artificiales que son capaces de aprender a partir de datos. Esto incluye una gran variedad de sistemas, desde los de visión por computador hasta sistemas para detectar correo no deseado (spam). En todos los casos, un sistema que aprende debe ser capaz de generalizar; es decir, encontrar patrones y regularidades en los datos que le permitan desempeñarse bien con datos que no ha observado previamente. Esta habilidad para generalizar y encontrar patrones en datos, es precisamente la que se explota en los sistemas analíticos actuales.

Objetivo

Perfil El diplomado está dirigido a todas las personas que desde sus roles tienen responsabilidad o incidencia en los procesos de análisis de datos y desarrollo de sistemas inteligentes y analíticos: gerentes de informática, analistas, desarrolladores y responsables de área. Igualmente, el diplomado también está dirigido a aquellos profesionales en áreas tales como la ingeniería, ciencias naturales, economía, matemáticas y estadística, interesados en diversas aplicaciones del aprendizaje computacional y el desarrollo de sistemas inteligentes y analíticos. Dado el enfoque práctico del diplomado se requiere que los estudiantes tengan familiaridad previa con conceptos de programación.

Durante muchos años el aprendizaje computacional estuvo confinado a los laboratorios de investigación y muchas de sus aplicaciones no pasaban de ser aplicaciones de juguete que no escalaban bien para ser usadas en escenarios reales. Los primeros casos de éxito se dieron en la década de los noventa en dominios de aplicación restringidos como la detección de fraudes en tarjetas de crédito y la predicción de series de tiempo. Sin embargo, en los últimos diez años ha habido una explosión en las aplicaciones del aprendizaje computacional en diferentes problemas que van desde las aplicaciones científicas, hasta productos de consumo masivo como las cámaras fotográficas o las consolas de juego.

El aprendizaje computacional está en el centro de una nueva área de conocimiento, la ciencia de datos (o data science en Inglés), que aborda el análisis y explotación del creciente volumen de datos. Los métodos de aprendizaje computacional permiten extraer información y conocimiento en forma de patrones, modelos predictivos y descriptivos, automáticamente inducidos a partir de estos datos. En un estudio de prospectiva patrocinado por IEEE, el aprendizaje computacional ha sido identificado como una de las tecnologías innovadoras que pueden liderar el cambio de la industria de la computación en los siguientes años. Pero aún, más allá de esta distinción, el aprendizaje computacional juega un papel fundamental en el éxito de otras tecnologías identificadas en el mismo estudio. En algunos casos, el aprendizaje computacional proveerá los métodos básicos que permitan abordar los retos particulares de algunas tecnologías, como la visión por computador, la biología computacional, las interfaces de usuario naturales o el denominado big analytics. En otros casos, los métodos de aprendizaje computacional permitirán analizar y aprovechar los inmensos volúmenes de datos generados por tecnologías, tales como los cursos abiertos masivos en línea, el internet de las cosas o la bioinformática. El propósito de este diplomado es exponer a los estudiantes a los conceptos, métodos y tecnologías de análisis de datos y aprendizaje computacional que en su conjunto soportan las actividades propias de la ciencia de datos. El diplomado tiene un enfoque práctico que enfatiza la aplicación de los conceptos y métodos a la solución de problemas reales. Lo estudiantes desarrollarán implementaciones de diversos sistemas analíticos usando diversas tecnologías actuales para el procesamiento, análisis y visualización de datos.

Formar a los estudiantes en las competencias necesarias que les permitan aplicar herramientas conceptuales y tecnológicas del análisis de datos y el aprendizaje computacional a la solución de problemas reales.

Metodología

50%: Presentación de temas50%: Talleres guiados

En este diplomado se asume la educación como un proceso de interacción dinámica centrada en los participantes, donde el rol del profesor, además de proveer su experiencia profesional y los elementos conceptuales, se concentra en ser un dinamizador. Desde esta perspectiva, la metodología debe reflejar el enfoque propiciando el desarrollo de las competencias propuestas. Se pretende entonces una participación activa y productiva en el desarrollo del diplomado, a través de: a) exposición magistral, b) talleres de trabajo en equipo c) sustentación y argumentación de los trabajos.

120 HORAS

Profesores coordinadores

Ingeniero de SistemasFelipe Restrepo Calle, PhD

Ingeniero de Sistemas y Computación, Universidad Tecnológica de Pereira, 2004; Magíster en Instrumentación Física, Universidad Tecnológica de Pereira, 2007; Doctor en Ingeniería Informática, Universidad de Alicante (España), 2011. Ha participado en varios proyectos de investigación a nivel nacional e internacional. Estancias posdoctorales: Universidad de Sevilla (España) durante 2012 y 2013, Universidade Federal do Rio Grande do Sul (Brasil) durante el primer semestre de 2014.

Profesor del Departamento de Ingeniería de Sistemas e Industrial en la Universidad Nacional de Colombia, sede Bogotá. Sus áreas de interés incluyen: lenguajes de programación, análisis automático de código fuente, procesadores de lenguaje, diseño de sistemas embebidos y educación en ingeniería. Cuenta con más de 30 publicaciones científicas en revistas, libros y conferencias internacionales. Actualmente lidera el grupo de investigación PLaS (Programming Languages and Systems) y es el Coordinador de la Maestría en Ingeniería de Sistemas y Computación.

Módulo IIntroducción al Análisis y Visualización de Datos con Python

Ingeniero de Sistemas

Ingeniero de Sistemas

Fabio Augusto González Osorio

Jorge Eliecer Camargo, PhD

Ingeniero de Sistemas,Universidad Nacional de Colombia (1993); MSc. en Matemáticas, Universidad Nacional de Colombia [1998]; Ph.D. & M.Sc. in Computer Science, The University of Memphis (2003); Profesor visitante University of Louisville, USA (2009); Profesor visitante Ecole Nationale Superieure de Techniques Avancees (ENSTA-ParisTech), Francia (2010); Profesor visitante University of Houston, USA (2017). Profesor Titular del Departamento de Ingeniería de Sistemas e Industrial. Coordinador del programa de Doctorado en Ingeniería de Sistemas y Computación, Universidad Nacional de Colombia, Bogotá. Amplia experiencia en investigación en aprendizaje computacional, minería de datos, recuperación de información, procesamiento de lenguaje natural y visión por computador. Participación en diversos proyectos de investigación internacionales y nacionales. Más de 100 publicaciones científicas en revistas, libros y conferencias internacionales. Lidera el grupo de investigación MindLab ( M a c h i n e L e a r n i n g P e r c e p t i o n a n d D i s c o v e r y L a b , http://mindlaboratory.org)

Profesor del Departamento de Ingeniería de Sistemas e Industrial de la Universidad Nacional de Colombia, Sede Bogotá. Cuenta con más de 50 publicaciones científicas en revistas, libros y conferencias internacionales relacionadas con el manejo de grandes volúmenes de datos y aplicaciones de machine learning en grandes volúmenes de datos en imágenes, audio y texto (big data). Ingeniero de Sistemas de la Universidad Nacional de Colombia, Magíster en Ingeniería de Sistemas y Computación de la Universidad de los Andes, Doctor en Ingeniería - Sistemas y Computación de la Universidad Nacional de Colombia. Ha participado en diferentes proyectos de investigación a nivel nacional e internacional. Trabajó en el Departamento de Policía Científica en Lausana (Suiza) en el proyecto "Detección automática de medicamentos falsos utilizando técnicas de procesamiento de imágenes y Machine Learning" y en el proyecto "Monitoreo de redes de tráfico de drogas sintéticas utilizando técnicas de procesamiento de imágenes y Machine Learning".

Módulo IIIntroducción al Aprendizaje Computacional(Machine Learning) con Python

Módulo IIDesarrollo de Sistemas Analíticos en la Nube

Certificación Este curso ofrece certificación expedida por la Facultad de Ingeniería de la Universidad Nacional de Colombia Sede Bogotá si el estudiante cursa con éxito el 80% o más del tiempo efectivo del curso. (Certificado de completitud)

» Para algunos cursos/diplomados es necesario aprobar con una nota mínima exámenes o talleres en el desarrollo de la metodología.

Formalización de la inscripción

Nombre del banco

Nombre de la cuentaNúmero de la cuentaCódigo de recaudo

Nombre del curso

SWIFT (Internacional)UID (Internacional)

Banco Popular

BPOPCOBB

005360

01272007 - 4

20180551

Fondo Especial Facultad de Ingeniería

Machine Learning

Co-Fundador de BigData Solutions S.A.S, compañía colombiana de base tecnológica que presta servicios de Consultoría en Big Data. Experiencia en Avantel S.A.S a cargo de la fábrica de software interna de la compañía. Consultor asesor en Arquitectura de Software, Machine Learning y Big Data para entidades tales como ICFES, DANE, MinTIC, Secretaría de Gobierno, Agencia de Defensa Jurídica del Estado, Superintendencia de Servicios Públicos, Ministerio de Transporte, CINTEL, entre otras.

Contenido / Programa del curso

Módulo I

40 horas - Teórico/práctico

Introducción al Análisis y Visualización de Datos con Python

El objetivo de este módulo es entrenar al estudiante en el uso del lenguaje de programación Python como herramienta para el análisis y visualización de datos. El módulo abordará los elementos básicos del lenguaje, los ambientes de programación que soportan su uso interactivo y las bibliotecas especializadas para el análisis y visualización de datos.

Introducción

Introducción a Phyton

Librería numérica de Python: NumPy

Análisis de datos con Pandas: parte 1

Análisis de datos con Pandas: parte 2

Análisis de datos con Pandas: parte 3

¿Qué es el análisis de datos?

Tipos de dato, listas, tuplas, diccionarios, set, fecha, hora

Tipos de arreglos, creación de arreglos, entrada/salida, índices, operaciones, funciones universales, troceado e iteraciones de arreglos

Introducción a Pandas

Combinaciones y concatenaciones, operaciones, estadísticas, valores faltantes, duplicados, permutaciones, tablas pivote, outliers. Entrada/salida de datos: texto, CSV, JSON, HTML, Excel

Visualización de datos con PandasAplicación práctica usando Pandas

Retos y aplicaciones del análisis de datos

Funciones, lambda, map, list comprehensions

Introducción librería para computación científica SciPy

Series, DataFrames, índices, consultas, agrupaciones y agregaciones

Taller 2 Pandas

Configuración entorno de trabajo: Notebooks iPython/Jupyter

Importar datos: archivo texto, CSV, Excel, SQLite DB

Taller NumPy

Taller 1 Pandas

»

»

»

»

»

»»

»

»

»

»

»

»

»

»

»

Principios de visualización de información

Visualización de datos con Matplotlib

Visualización de datos con Seaborn

Visualización de datos con Plotly y Cufflinks

Visualizaciones interactivas web con Bokeh

Visualización de datos complejos

Presentación proyecto final del módulo y cierre (4 horas)

Bibliografía

Data-ink ratio, Chart junk (Edward Tufte)

Introducción a Matplotlib

Introducción a Seaborn

Introducción a Plotly

Introducción a Bokeh

Visualización de grafosVisualización de datos geográficos: mapas cloropléticosTaller

¿Qué visualizar y para qué?

Plots y subplots, line plots, bar charts, scatterplots, histograms, box plots, heatmaps

Distribution Plots, Categorical Plots, Matrix Plots, Regression Plots, Grids

Plotly y Cufflinks

Taller Bokeh

Abstracción de datos y tareasGráficos mentirosos y engaños visuales

Taller Matplotlib

Taller Seaborn

Taller Plotly

»

»

»

»

»

»»»

»

»

»

»

»

»»

»

»

»

1. Wes McKinney. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython. O'Reilly Media, Inc., 2012.2. Tamara Munzner. Visualization Analysis and Design. A K Peters Visualization Series, CRC Press, 2014.3. Igor Milovanović. Python Data Visualization Cookbook. Packt Publishing Ltd, 2013.4.UCLA Statistical Computing Resources. Disponible en: http://wiki.stat.ucla.edu/socr/index.php/EBook

Contenido / Programa del curso

Módulo II

40 horas - Teórico/práctico

Introducción al Análisis y Visualización de Datos con Python

El objetivo de este módulo es dotar al estudiante con la capacidad de abordar problemas de análisis de datos, usando técnicas de aprendizaje computacional. El módulo parte de una aproximación conceptual al aprendizaje computacional para llevar al estudiante, a través de prácticas concretas basadas en Python y bibliotecas especializadas, al diseño e implementación de modelos de aprendizaje supervisado y no supervisado.

¿Qué es el machine learning?

Introducción a scikit-learn

Aprendizaje supervisado

Modelos probabilísticos de clasificación

Árboles de decisión

Aprendizaje no supervisadoTaller de aprendizaje supervisado

Historia

Arquitectura

ClasificaciónRegresión

Teoría de la decisión

Ganancia de información

Agrupamiento

Árboles

Reducción de la dimensionalidad

Métodos

Carga y preprocesamiento de datos

Aplicaciones

Naïve Bayes

Random forest

Evaluación de modelos no supervisados

Aplicaciones

Evaluación de modelos supervisados

Regresión logística

»

»

»»

»

»

»

»

»

»

»

»

»

»

»

»

»

»

Agrupación

Reducción de la dimensionalidad

Otros métodos

Selección de modelos

Bibliografía

k-medias

Análisis de componentes principales

Redes neuronales

Optimización de parámetros

Mezcla de Gaussianas

Factorización de matrices

Métodos de kernel

Pipelines

»

»

»

»

»

»

»

»

1. Trevor Hastie Robert Tibshirani Jerome Friedman; The Elements of Statistical Learning, Second Edition, Springer, 20092. Ethem Alpaydin, Introduction to Machine Learning, MIT Press, 20103. Géron, Aurélien. Hands-on machine learning with Scikit-Learn and TensorFlow: concepts, tools, and techniques to build intelligent systems, O'Reilly Media, 2017

Taller de aprendizaje supervisado

Presentación proyecto final del módulo y cierre (4 horas)

Contenido / Programa del curso

Módulo III

40 horas - Teórico/práctico

Desarrollo de Sistemas Analíticos en la Nube

El objetivo de este módulo es presentar al asistente las diferentes alternativas que existen para realizar flujos analítica de datos utilizando servicios en la nube. Se abordarán los conceptos básicos de computación en la nube enfocándose en lo relacionado con servicios de Machine Learning. Se espera que el asistente pueda utilizar este tipo de servicios para dotar de “inteligencia” a las aplicaciones web y móviles que construya. En el módulo se desarrollarán talleres prácticos que permitan realizar análisis de datos mediante el uso de servicios en la nube de Machine Learning.

Machine learning con Databricks

Carga de datos

Librería de Machine Learning (MLib)

Machine Learning con Amazon

Máquinas virtuales para ciencia de datos

Entorno de trabajo

Bases de datos y tablas

Algoritmos de Machine LearningEstadística básica, clasificación y regresión, filtrado colaborativo, agrupamiento, reducción de la dimensionalidad, extracción de características, evaluación de modelos

Amazon Web Services (AWS)

Frameworks preinstalados con frameworks de ML (Tensor Flow, Caffe, Theano, Torch, Mxnet)AWS Deep Learning AMI

Clusters

Manejo de DataframesImportar librerías

Computación Elástica (EC2)

Máquinas virtuales con GPUs

Creación de notebooks

Almacenamiento (S3)Infraestructura Big Data

»

»

»»

»

»

»

»

»»

»

»

»

»»

Servicios de Machine Learning (APIs)

Azure Machine Learning Studio

Conjuntos de datos

Servicio de Agentes de Conversación Natural (chatbots)

Carga de datos

Cloud Machine Learning de Google

Servicios de ML en Google Cloud

Bibliografía

Servicios de reconocimiento de voz

Creación de proyectos de ML

Modelos de ML pre-entrenados

Integración de agentes en websites

Partición para entrenamiento y pruebas, selección del algoritmo de ML, entrenamiento del modelo de ML, evaluación del modelo, predicción para nuevos ítems

TensorFlow

API para procesamiento de lenguaje natural

Servicios de predicción por lotes

API para traducción automática

Servicio de procesamiento de lenguaje natural, transcripción automática voz-textoServicios para análisis de imágenes, reconocimiento de objetos, rostros, y escenas en imágenes.

Servicios web

Diseño de experimentos de ML

Notebooks

Publicación del servicio web de modelos entrenados

Google Cloud Dataflow

API para reconocimiento de voz

Deep Learning

API para visión por computador

Infraestructura de GPUs

API de extracción de metadatos en videos

»

»

»

»

»

»

»

»

»

»»

»

»

»

»

»

»

»

»

»

»

1. Jeff Barnes, Azure Machine Learning: Microsoft Azure Essentials, Microsoft Press, 20152. Vlentine Fontama, Roger Barga, Wee Hyong Tok, Predictive Analytics with Microsoft Azure Machine Learning: Build and Deploy Actionable Solutions in Minutes, Apress, 20143. AWS, amazon Machine Learning: Developer Guide, Amazon Web Services, 20174. Valliappa Lakshmanan, Data Science on the Google Cloud Platform, O´Reilly, 2017

Presentación proyecto final del módulo y cierre (4 horas)

Unidad de EducaciónContinua y Permanente

[email protected]

www.ingenieria.unal.edu.co/uec

Unidad Camilo TorresCalle 44 No. 45-67Bloque B5, piso 1

(1) 316 5000extensiones 10686, 10689

Facultad de Ingeniería Sede Bogotá