Módulo: Aprendizaje automático
Este módulo forma parte del curso de PySpark. Incluye 8 lecciones .
MLlib es la librería de aprendizaje automático en PySpark que proporciona algoritmos de clasificación, regresión, agrupación en clústeres y métodos de reducción de dimensionalidad. Con estas herramientas, es posible entrenar modelos de manera distribuida y gestionar grandes volúmenes de datos sin saturar la memoria de una sola máquina.
Los algoritmos están diseñados para escalar de forma natural, aprovechando la arquitectura de Apache Spark. De esta manera, la mayoría de los pasos en la preparación y el entrenamiento de modelos se integran directamente con la API de DataFrame, facilitando la limpieza y el procesamiento de datos.
Para la preparación de características, se emplean utilidades como Tokenizer
o VectorAssembler
. Por ejemplo, el siguiente código muestra la concatenación de columnas en un solo vector de entrada:
from pyspark.sql import SparkSession
from pyspark.ml.feature import VectorAssembler
spark = SparkSession.builder \
.appName("MLlibEjemplo") \
.getOrCreate()
df = spark.read.csv("ruta/datos.csv", header=True, inferSchema=True)
assembler = VectorAssembler(
inputCols=["col1", "col2", "col3"],
outputCol="features"
)
df_features = assembler.transform(df)
df_features.select("features").show()
Una vez creadas las características, se aplica un modelo de clasificación o regresión. Por ejemplo, en problemas de clasificación binaria, se puede usar LogisticRegression
, mientras que en problemas de predicción de valores continuos se puede optar por LinearRegression
. Ambas clases admiten ajustes de parámetros y generan métricas de evaluación que permiten comparar el rendimiento de cada modelo.
Para encadenar varias etapas de transformación y modelado, MLlib ofrece la interfaz de pipeline, que organiza de manera estructurada el proceso de entrenamiento. Este mecanismo incluye:
- Transformaciones de datos como normalización, tokenización o indexado de etiquetas.
- Algoritmos de aprendizaje, por ejemplo regresión lineal o modelos de árboles de decisión.
- Evaluadores para comprobar la calidad de las predicciones.
Además, se pueden emplear técnicas como CrossValidator para automatizar la validación cruzada y la búsqueda de hiperparámetros. Esto implica definir un rango de valores para cada parámetro crítico y evaluar el modelo con distintos conjuntos de entrenamiento y validación, maximizando la probabilidad de encontrar la configuración más adecuada.
Un ejemplo simplificado de pipeline con regresión lineal y normalización de datos sería:
from pyspark.ml import Pipeline
from pyspark.ml.feature import MinMaxScaler
from pyspark.ml.regression import LinearRegression
scaler = MinMaxScaler(inputCol="features", outputCol="scaled_features")
regresion = LinearRegression(featuresCol="scaled_features", labelCol="label")
pipeline = Pipeline(stages=[assembler, scaler, regresion])
model_trained = pipeline.fit(df)
predictions = model_trained.transform(df)
predictions.select("label", "prediction").show()
Gracias a estas funcionalidades, MLlib hace posible el desarrollo de soluciones de aprendizaje automático que combinan exploración de datos, limpieza, entrenamiento de modelos y despliegue a gran escala. Con esta aproximación, la misma lógica que se emplea en un entorno local de pruebas se puede llevar a un clúster con datos reales sin grandes cambios en el código.
Otros módulos de este curso
Aprendizaje automático
Lecciones de este módulo
Explora todas las lecciones disponibles en Aprendizaje automático
Todos los módulos del curso
Navega entre los módulos de PySpark
Aprendizaje automático
Estás aquíExplora más sobre PySpark
Descubre más recursos de PySpark

Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, PySpark es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.