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:
Guarda tu progreso
Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.
Más de 25.000 desarrolladores ya confían en CertiDevs
- 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.
Completa PySpark y certifícate
Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.
Asistente IA
Resuelve dudas al instante
Ejercicios
Practica con proyectos reales
Certificados
Valida tus conocimientos
Más de 25.000 desarrolladores ya se han certificado con CertiDevs