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. Yo he seleccionado Java y Python, dos de los lenguajes más ampliamente usados. El primero lo empleare para explicar los fundamentos de la programación orientada a objetos y el segundo será el que emplearé posteriormente cuando nos sumerjamos en la Inteligencia artificial.
Conceptos básicos de programación
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