Mi propósito es desarrollar los contenidos básicos que todo estudiante de ciencia en datos debe dominar, de la manera más didáctica y sencilla posible. De ahí el título de aprendiendo ciencia en datos.
Para cumplir con mi objetivo, voy a ir volcando en esta web los contenidos que empleo en mis clases de ciencia en datos en la Universidad. Por ello, la web va a estar siempre en construcción, o al menos en permanente actualización, con las mejoras que vaya realizando cada curso.
En un intento de poner un cierto orden, empezaré por los temas que a mi entender hay que aprender primero, intentando seguir un orden cronológico. Aunque lógicamente, los temas de los que este impartiendo clase estarán más completos y actualizados.
El recorrido de aprendizaje que te propongo es el siguiente:
Estadística
- Estadística descriptiva (media, mediana, moda, desviación)
- Estadística inferencial (pruebas de hipótesis, p-valor, intervalos)
- Distribuciones de probabilidad
- Correlación y causalidad
- Regresión lineal y análisis de varianza (ANOVA)
Programación
Todo científico de datos debe saber programar y es conveniente que se maneje en más de un lenguaje de alto nivel. Yo he seleccionado Java y Python, dos de los lenguajes más ampliamente usados. Pero antes de saltar a estos lenguajes, conviene introducir una serie de conceptos básicos de programación.
La programació´n orienta a objetos
Vamos a prestar especial atención al paradigma de la programación orientada a objetos, ya que este es el más ampliamente usado.
Java
El lenguaje de programación Java
Un recorrido por todo los fundamentos del lenguaje Java: variables, operadores, funciones de entrada y salida, estructuras de control, Clases y Objetos, Arrays y Colecciones, Sistemas de persistencia de datos ….
Python
Guía de programación en Python.
Los fundamentos de Python: variables, listas, diccionarios, estructuras de control, funciones, clases y objetos, persistencia de datos, librerias de ciencia de datos, aplicaciones de escritorio, desarrollo web …
Estructura de datos
Arquitecturas
Arquitecturas de almacenamiento:
Arquitecturas de Sistemas:
- Arquitectura de Sistemas
- Arquitectura de ordenadores
- Redes y Comunicaciones
Big Data
- Conceptos claves
- Herramientas: Hadoop, Spark, Kafka
- Procesamiento distribuido
- Arquitectura Lambda y Kappa
Proyectos de Data Mining
- Introducción a la analítica de datos
- Framework para el desarrollo de proyectos de Data Mining: CRISP-DM
Extract, Transform, Load
- Diseño
- Open data
- Consumo APIs
- Web scrapping
Exploratory Data Analysis
- Análisis univariable y multivariable
- Identificación de outliers y datos faltantes
- Histogramas, diagramas de dispersión, boxplots
- Correlaciones y tendencias
- Visualización de datos
Pipelines
- Pipelines de procesamiento
- Procesamiento distribuido y en tiempo real
- Monitorización y evaluación
Despliegue en Producción
- MLOps
- Creación de APIs
- Docker y contenedores
Inteligencia Artificial
Introducción a la inteligencia artificial
- Historia y evolución de la IA
- Impacto de la IA
- Dominio de la IA (AI Fluency)
Machine Learning
- Aprendizaje supervisado y no supervisado
- Modelos básicos: regresión, clasificación, clustering
- Reducción de dimensionalidad y selección de características
- Métricas y validación cruzada
- Aprendizaje por refuerzo
Deep Learning
- Redes Neuronales artificiales (RNA)
- Redes Neuronales convolucionales (CNN) para imágenes
- Redes Neuronales recurrentes (RNN, LSTM) para series temporales
- Transformers
- IA Multimodal
- Frameworks: TensoFlow, Keras, PyTorch
IA Generativa
- Modelos generativos: GANs, Diffussion Models
- Modelos de lenguaje (GPT, BERT)
- Aplicaciones: generación de texto, imágenes, código
- Consideraciones éticas y sesgos