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:
Ejemplo de aplicación
Análisis de redes de transporte con Python usando OSMnx y NetworkX
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:
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
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:
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:
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