PySpark: Aprendizaje automático

Descubre cómo aplicar técnicas de aprendizaje automático con PySpark. Este curso te guía en el uso de MLlib para construir y evaluar modelos de machine learning.

Aprende PySpark GRATIS y certifícate

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.

Empezar curso de PySpark

Lecciones de este módulo de PySpark

Lecciones de programación del módulo Aprendizaje automático del curso de PySpark.

Ejercicios de programación en este módulo de PySpark

Evalúa tus conocimientos en Aprendizaje automático con ejercicios de programación Aprendizaje automático de tipo Test, Puzzle, Código y Proyecto con VSCode.