Guía Data Science – Parte 2

Este es el segundo blog de la serie, Guía introductoria al Data Science. En el primero brindamos una serie de recursos para crear un conocimiento base que nos permitan entender los temas que vamos a ver en esta sección que denominamos “Especialización”.

Al igual que en la medicina, los científicos de datos también tienen una base común de conocimientos y luego existen diversas especializaciones. Estos conceptos básicos incluyen el análisis exploratorio, conceptos de machine learning como por ejemplo las regresiones y la visualización de datos.

Conocimiento base común

Intro al Análisis Exploratorio

Exploratory Data Analysis with Pandas

Taller de análisis exploratorio de datos con Python – Sesión 1

Intro al machine learning

En la primer parte de este curso introductorio se repasan conceptos vistos en Introducción a Python para Ciencias de Datos del primer blog.

Curso de Introducción al Machine Learning 💻 (Clase 1/2)

Curso de Introducción al Machine Learning 💻 (Clase 2/2)

Intro a la visualización de datos y Storytelling

Introducción a Data Visualizations and Storytelling

Aprendamos a graficar en Python: Plotly, Seaborn & Matplotlib

Elegir como máximo 2.

Recomendamos elegir como máximo dos áreas para realizar los cursos de especialización. La gran mayoría de los científicos de datos suelen combinar el machine learning con otra especialidad. Otra combinación común es el lenguaje natural y el deep learning.

Especialización

Análisis de grafos

Un grafo es un conjunto no vacío de objetos llamados vértices (o nodos), y una selección de pares de vértices llamados aristas. Con esta teoría, se busca representar de forma visual conjuntos de datos abstractos en forma de nodos o vértices, y las uniones o relaciones que puedan existir entre ellos a través de aristas.

Introducción:

Tryolabs Tech Meeting | Machine Learning on Graphs with Federico La Rocca

Cursos:

Curso Teoría básica de grafos y análisis de 4 conocidos problemas

Curso Análisis de Redes – Julián Cárdenas

Libro:

Teoría de Grafos

Ejemplo de aplicación

Análisis de redes de transporte con Python usando OSMnx y NetworkX

Análisis del grafo de Twitter

Otros recursos

  • NetworkX. Quizá la herramienta de análisis de grafos/redes más popular en Python. Muy fácil de usar y se integar con otras bibliotecas.
  • SNAP: Stanford Network Analysis Project. El grupo SNAP de Stanford comparte sus bibliotecas en C++ o Python para el análisis de redes/grafos.
  • PyG (a.k.a. PyTorch Geometric). Una biblioteca muy popular para aprendizaje (profundo) en grafos. Naturalmente, está basada en PyTorch.
  • Deep Graph Library (DGL). Otra biblioteca popular para aprendizaje profundo en grafos. Sin embargo, esta es agnóstica al framework de base, y puede usarse con PyTorch, TensorFlow o incluso Apache MXNet.
  • Spektral. Una biblioteca basada en Tensorflow para aprendizaje profundo en grafos.
  • StellarGraph. Otra biblioteca basada en Tensorflow para aprendizaje en grafos.
  • PyGSP: Graph Signal Processing in Python. Una biblioteca en Python para procesamiento de señales en grafos.
  • graph-tool. Una biblioteca muy similar a NetworkX, pero mucho más eficiente.
  • igraph – The network analysis package. Esta es otra biblioteca similar a NetworkX, pero no sólo es más rápida, sino que además está disponible en otros lenguajes (C, Python o R).
  • NetworKit – Large-scale network analysis. Otra versión más rápida de NetworkX.
  • scikit-network. Un scikit específico para aprendizaje en redes.
  • Pajek. Una herramienta específicamente para visualización y análisis de grandes grafos. Además en su sitio tienen algunos datasets.
  • Alelab’s Graph Neural Networks. El grupo de la Universidad de Pennsylvania comparte la mayoría de sus implementaciones de GNNs (basadas en PyTorch) en este repositorio.

Causalidad

La causalidad se refiere a una relación de causa y efecto entre dos variables. Para probar la causalidad entre dos variables, además de que deben guardar una correlación, es necesario estudiar casos en los que una variable pueda aparecer sin la otra.

Introducción:

Miguel F Alarcon – Introducción a la causalidad en Python

Diapositivas de la presentación:

Introducción a la causalidad en Python

Introducción practica:

Causalidad: ¿machine learning o modelos “clásicos”?

Traducción NO oficial de Causal Inference for The Brave and True, aquí podrán encontrar notebooks en español sobre la aplicación de inferencia causal.

Deep Learning

Este es un subcampo dentro del aprendizaje automático que se basa en el uso de redes neuronales que constan de varias capas, incluyendo una de entrada y otra de salida, junto con un conjunto de capas intermedias de aprendizaje.

Introducción:

Aprendizaje Profundo

Cursos:

Deep Learning | Instituto Humai: Inteligencia Artificial y Ciencia de Datos

Computer Vision | Instituto Humai: Inteligencia Artificial y Ciencia de Datos

Procesamiento de Lenguaje Natural

El procesamiento de lenguaje natural es una disciplina que tiene como objetivo principal enseñar a las máquinas a comprender, interpretar y generar lenguaje humano de manera efectiva. Para ello, se emplean técnicas y algoritmos de inteligencia artificial, estadística y lingüística computacional. En la actualidad, el procesamiento de lenguaje natural ha adquirido una gran relevancia debido al creciente volumen de datos no estructurados que se generan en internet y las redes sociales, así como su importancia en el desarrollo de chatbots, asistentes virtuales, sistemas de traducción automática, clasificación de textos, el análisis de sentimientos, la identificación de entidades y la generación de resúmenes.

Curso:

Curso de Procesamiento de Lenguaje Natural

Apuntes del curso

Opción 2: NLP | Instituto Humai: Inteligencia Artificial y Ciencia de Datos

Ejemplo de aplicación:

NLP: Analizamos los cuentos de Hernan Casciari

Programación lineal y optimización convexa

La Programación Lineal es una rama de la investigación de operaciones que estudia la optimización de una función lineal sujeta a un conjunto de restricciones, también lineales.

FEDOSSOVA, ALINA, ÓSCAR YECID BUITRAGO SUESCÚN, and RODRIGO BRITTO AGUDELO. Introducción a La Programación Lineal. 1st ed. CESA – Colegio de Estudios Superiores de Administración, 2011. http://www.jstor.org/stable/j.ctt1rfss71.

Introducción y ejemplos con Python

Cursos:

PROGRAMACIÓN LINEAL – Desde CERO

Optimización convexa con Python

Libros:

Optimización convexa

Programación lineal

Visualización de Datos y Storytelling

La visualización de datos es una herramienta fundamental para realizar la primera aproximación a nuestros datos. Es importante destacar que, para lograr una buena visualización de datos, es necesario seguir las mejores prácticas en la creación de gráficas. Esto significa que las gráficas deben transmitir la información de forma clara, evitando falencias o dualidades de criterios.

Por otro lado, el data storytelling es una técnica que nos permite contar una historia a través de los datos. Esta técnica se enfoca en transmitir nuestro mensaje de forma ordenada, logrando que el receptor comprenda los objetivos de nuestros hallazgos. El data storytelling se compone de varios elementos, como la selección de datos relevantes, la creación de una narrativa coherente y la utilización de visualizaciones adecuadas.

Introducción a la visualización de datos:

Visualización de Datos en Python

01 Análisis y Visualización de Datos

Curso visualización de datos:

Visualización de Información

Especialización por librería:

Bokeh – Curso: Visualización de datos con Bokeh

Dashboards con Dash – Dashboards en Python – Introducción a Dash

Matplot – Curso de matplotlib

Plotly – Intro a PLOTLY : Exploracion y Visualizacion en Python | DashPlotly

Seaborn – Explora y Visualiza Relaciones Estadísticas con Seaborn de Python: Gráficas de Línea y Dispersión

Data Storytelling

Storytelling con Python – Inauguración Capítulo Colombia

Introducción al data storytelling

Clase Maestra – Casos prácticos de Data Storytelling

Curso data storytelling

Data Storytelling

Pablo Molina
Consultor Data & Analytics