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 http://creativecommons.org/licenses/by-sa/4.0/. Puede hallar permisos más allá de los concedidos con esta licencia en https://fortinux.com. Sugerencias y comentarios a info@fortinux.com.

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:

Bibliografía

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: https://www.databricks.com/blog/machine-learning.

Bibliotecas de python para ML

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: https://www.tensorflow.org/about.

  • 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.

Pasos en ML

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: https://pytorch.org/.

  • 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: https://github.com/pytorch/pytorch.

  • Tutorial básico: https://docs.pytorch.org/tutorials/beginner/basics/quickstart_tutorial.html.

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: https://keras.io/getting_started/about/.

  • Guías de uso: https://keras.io/guides/.

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: https://github.com/jax-ml/jax, https://docs.jax.dev/en/latest/.

  • 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: https://docs.jaxstack.ai/en/latest/index.html.

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.

  • 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.
  • 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: https://spark.apache.org/docs/latest/api/python/index.html.

  • Cheat sheet: https://www.sparkplayground.com/pyspark-cheat-sheet.

Puedes clicar aquí para realizar el tutorial utilizando python, pysparl y 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