spark MLLib, python, pyspark

Estos apuntes forman parte del curso básico de Python. Apuntes intermedio por Marcelo Horacio Fortino. Versión 2.5.1. Junio 2026.

Esta obra está sujeta a la licencia Reconocimiento-CompartirIgual 4.0 Internacional de Creative Commons. Para ver una copia de esta licencia, visite .
Puede hallar permisos más allá de los concedidos con esta licencia en . Sugerencias y comentarios a .

Todas las marcas son propiedad de sus respectivos dueños. Python® y PyCon® son marcas registradas de la Python Software Foundation. Linux® es una marca registrada de Linus Torvalds. Ubuntu® es una marca registrada de Canonical Limited. Google® es una marca registrada de Google Inc. Microsoft® y Windows® son marcas registradas de Microsoft Corporation. Red Hat® es una marca comercial registradas de Red Hat, Inc. UNIX® es una marca comercial registrada de The Open Group. Apple® y Mac OS® son marcas comerciales de Apple Inc.

| Versión | Autor/es | Fecha | Observaciones |
|——- | —————- | ——– | ———–|
| 1.0 | Marcelo Horacio Fortino | 2021/Marzo | Curso Python |
| 1.1 | Marcelo Horacio Fortino | 2021/Junio | Convertido a markdown – ipynb |
| 1.2 | Marcelo Horacio Fortino | 2021/Agosto | Actualizados contenidos |
| 1.3 | Marcelo Horacio Fortino | 2021/Octubre | Agregado Flask microframework |
| 1.4 | Marcelo Horacio Fortino | 2021/Noviembre | Agregado Pandas – datascience |
| 1.5 | Marcelo Horacio Fortino | 2021/Diciembre | Agregado Devops – Ansible |
| 2.0 | Marcelo Horacio Fortino | 2022/Abril | Nueva estructura: core / module |
| 2.1 | Marcelo Horacio Fortino | 2022/Junio | Módulo apuntes intermedio |
| 2.2 | Marcelo Horacio Fortino | 2022/Agosto | Actualizado temario y ejercicios |
| 2.3 | Marcelo Horacio Fortino | 2022/Octubre | Actualizado despliegue a render.com |
| 2.4 | Marcelo Horacio Fortino | 2023/Noviembre | Aplicaciones de escritorio con python |
| 2.5 | Marcelo Horacio Fortino | 2026/Abril | Aplicaciones de ML e IA para python |

Esta obra se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR. El autor no asume ninguna responsabilidad si el lector hace un mal uso de la misma.

– Estos apuntes se basan en:
– La documentación oficial de Python, ,
– La bibliografía presentada al final de este documento, y
– Documentación propia recogida a lo largo de los años de diversas fuentes.

## Bibliografía

– Downey, A., Elkner, J., Meyers, C. (2015). Aprenda a Pensar Como un Programador con Python.
Recuperado de
– Kent D. Lee. (2014). Python, Programming Fundamentals Second Edition.
– Marzal Varó, A., Gracia Luengo, I., García Sevilla, Pedro. (2014). Introducción a la programación con Python 3.
Recuperado de

– Miller, B., Ranum, D. Solución de problemas con algoritmos y estructuras de datos usando Python. Traducido por Mauricio Orozco-Alzate, Universidad Nacional de Colombia – Sede Manizales.
Recuperado de
– Shaw, Z. A. (2016). Learn Python 3 the Hard Way.
Recuperado de
– Van Rossum, G. and the Python development team. (2020). Documentación de Python en español.
Recuperado de

– McGregor, S. E. (2022). Practical Python data wrangling and data quality. O’Reilly Media.
– Chollet, F. (2017). Deep learning with Python. Manning Publications.
– Russell, S., & Norvig, P. (2019). Artificial intelligence: A modern approach. Pearson Higher Education.
– D2L.ai: Interactive Deep Learning Book with Multi-Framework Code, Math, and Discussions.
Recuperado de

# Aprendizaje automático – ML

– Si bien se viene estudiando la forma de hacer que las máquinas puedan aprender por si solas desde 1970 aproximadamente, no fue hasta 1983 con la publicación del libro *Machine learning: The AI Approach* (Ryszard S. Michalski, Tom M. Mitchell, Jaime Carbonell) que la disciplina de aprendizaje automático (*Machine Learning – ML*) tomó impulso.
– Ésta fue luego sistematizada en otro libro seminal escrito por T. Mitchell: *Machine Learning* (1997).

– El aprendizaje automático (*Machine Learning – ML*) incluye varias técnicas que le permiten a los algoritmos aprender patrones de datos y luego hacer predicciones probabilísticas para su posterior análisis y toma de decisiones.
– Incluye el aprendizaje supervisado (*supervised learning*), donde los modelos se entrenan en datos etiquetados; aprendizaje no supervisado (*unsupervised learning*), donde los patrones se reconocen mediante datos no etiquetados; y aprendizaje de refuerzo (*reinforcement learning*), en el cual los modelos aprenden a tomar decisiones basados en recompensas o castigos.

– Fuente: KUBAT, Miroslav. (2017). An Introduction to Machine Learning. Second Edition Switzerland: Springer.
– Para una introducción básica a ML: .

## Bibliotecas de python para ML

– Entre las herramientas má populares de python para aprendizaje automático (ML), aprendizaje profundo (DL), LLM / GenAI, y canalizaciones / automoción se encuentran:

– Aprendizaje automático (ML)
– Scikit-learn , construída sobre NumPy, SciPy, y matplotlib.
– XGBoost, LightGBM, y CatBoost .

– Aprendizaje profundo (DL)
– TensorFlow .
– PyTorch .
– Keras < https://keras.io/>.
– La más reciente JAX .
– Transformers (Hugging Face) es el estándar de facto para modelos de aprendizaje profundo preentrenados.

– LLMs y GenAI
– Conectan LLMs a fuentes de datos (PDFs, BBDD relacionales, etc.) y construyen agentes de IA.
– LangChain .
– LlamaIndex .

– Canalizaciones y automación
– MLflow .
– Kedro .
– Prefect .
– Airflow .

## TensorFlow

– El aprendizaje automático es la práctica de ayudar al software a realizar una tarea sin programación o reglas explícitas.
– En la programación tradicional de computadoras, un programador especifica las reglas que debe usar la computadora.

– Sin embargo, ML requiere una mentalidad diferente:
– El aprendizaje automático del mundo real se centra mucho más en el análisis de datos que en la codificación.
– Los programadores proporcionan un conjunto de ejemplos y la computadora aprende patrones a partir de los datos.
– Se puede entender el aprendizaje automático como «programación con datos».

– Extraído de TensorFlow: .

– Los tensores son matrices multidimensionales con un tipo uniforme denominado (*dtype*), en NumPy los tensores son similares a las matrices (*np.arrays*).
– Todos los tensores son inmutables como los números y las cadenas de Python. Nunca se puede actualizar el contenido de un tensor, solo se puede crear uno nuevo.
– Extraído de .

## Pasos en ML

– Paso 1: recopilar datos.
– Paso 2: Explorar los datos.
– Paso 2.5: Eligir un modelo.
– Paso 3: Preparar los datos.
– Paso 4: construir, entrenar y evaluar el modelo.
– Paso 5: Sintonizar los hiperparámetros.
– Paso 6: Implementar el modelo.

– Extraído de Maching Learning:
.

## Redes neuronales

– Es un tipo de modelo que se puede entrenar para reconocer patrones.
– Está compuesto por capas, incluidas las de entrada y salida, y al menos una capa oculta.
– Las neuronas de cada capa aprenden representaciones cada vez más abstractas de los datos.

– Extraído de TensorFlow: https://www.tensorflow.org/about.

– Se suelen dividir en dos tipos: las redes neuronales convolucionales (*Convolutional Neural Networks – CNN*), se utilizan para analizar imágenes, mientras que las redes neuronales recurrentes (*Recurrent Neural Networks – RNN*) se utilizan para datos de secuencias.

## Entrenar una red neuronal

– Las redes neuronales se entrenan por descenso de gradiente.
– Los pesos en cada capa comienzan con valores aleatorios, y estos se mejoran iterativamente con el tiempo para hacer que la red sea más precisa.
– Se usa una función de pérdida para cuantificar qué tan imprecisa es la red, y se usa un procedimiento llamado retropropagación para determinar si se debe aumentar o disminuir cada peso para reducir la pérdida.

## PyTorch

– PyTorch fue originalmente desarrollada por Meta y actuelmente se gestiona mediante la PyTorch Foundation, una comunidad de desarrolladores, investigadores y pioneros de la industria de IA que colaboran para llevar adelante los proyectos de la misma.
– Fundación PyTorch: .

– PyTorch es un paquete de Python que provee dos funcionalidades de alto nivel:
– Un tensor computatacional (similar a NumPy) con una fuerte aceleración para las GPUs.
– Redes neuronales profundas construidas sobre un sistema de autograd (*tape-based autograd system*) basado en cinta.

– Se pueden reutilizar también, de ser necesario, los paquetes de python tipo NumPy, SciPy y Cython para extender PyTorch.
– Fuente: .
– Tutorial básico: .

## Keras

– Keras 3 es una API multi-framework de aprendizaje profundo.
– Puede se usada para desarrollar componentes modulares compatibles con otros marcos tipo JAX, TensorFlow, o PyTorch.
– Es simple, flexible y poderosa, siendo utilizada en organizaciones tipo la NASA o Alphabet.

– Fuente: .
– Guías de uso: .

## JAX

– Jax es una biblioteca de Python diseñada para realizar investigación de alto desempeño en aprendizaje automático.
– Es una biblioteca computacional numérica similar a Numpy pero con algunas mejoras claves.
– Ha sido desarrollada internamente en Google, donde es utilizada por los equipos de Deepmind.

– Fuentes: , .

– El Stack de JAX AI es una colección de blibliotecas seleccionadas por investigadores e ingenieros de Google y otras organizaciones, útiles para implementar y desplegar modelos de las herramientas de IA generativa (GenAI) tipo Imagen o Gemini, entre otras.
– Fuente: .

## Apache Spark MLlib

– MLlib es la biblioteca escalable de aprendizaje automático (ML) de Apache Spark.
– Su objetivo es hacer que el aprendizaje automático práctico sea escalable y fácil.
– Fuente: .

– Las utilidades de flujo de trabajo de ML incluyen:
– Algoritmos de ML: algoritmos de aprendizaje comunes como clasificación, regresión, agrupamiento y filtrado colaborativo.
– Caracterización: extracción de características, transformación, reducción de dimensionalidad y selección.
– Fuente: .

– Canalizaciones:
– Incluye herramientas para construir, evaluar y ajustar canalizaciones de ML.
– Persistencia:
– Guarda y carga algoritmos, modelos y canalizaciones.
– Utilidades:
– Disponibles para álgebra lineal, estadística, manejo de datos, etc.

## PySpark

– PySpark es la API de Python para Apache Spark utilizada para procesar datos a gran escala y en tiempo real en un entorno distribuido.
– Proporciona además una consola PySpark para analizar los datos de forma interactiva, combinando la facilidad de aprendizaje y uso de Python con la potencia de Apache Spark.
– Es compatible con todas las características de Spark, como Spark SQL, *DataFrames*, *Structured Streaming*, *Machine Learning (MLlib)*, *Pipelines* y *Spark Core*.

– Fuente: .
– *Cheat sheet*: .

Puedes [clicar aquí para realizar el tutorial utilizando python, pysparl y Spark MLLib](https://fortinux.com/tutoriales/tutorial-spark-mllib/).

Si buscas un formador para realizar este curso u otra actividad formativa (webinar, workshops, bootcamps, etc.) en tu organización, me puedes ubicar a través de la página de contacto. Muchas gracias.

Si te ha gustado el artículo puedes ayudarme haciendo una donación con criptomonedas. Gracias!!!

 

 

Image by Ilona Frey from Pixabay