Análisis de Regresión lineal en Python Spark

Ejemplo de Regresión lineal simple en Python Sparklogo python

Se muestra un ejemplo de regresión lineal simple sobre un conjunto de datos que se genera de forma aleatoria.

Entra regresión se ejecuta sobre una sesión de Spark utilizando la librería propia de Spark para machine learning.

# -*- coding: utf-8 -*-
"""
Spark Regression
"""

from pyspark.sql import SparkSession
from pyspark.ml import Pipeline
from pyspark.ml.feature import VectorAssembler
from pyspark.ml.regression import LinearRegression
from time import time
import random

# Crear la sesión de Spark
spark = SparkSession\
    .builder \
    .appName('abc')\
    .config("spark.python.worker.reuse","true") \
    .getOrCreate()

# Generación de un dataset de 2 dimensiones
data = []
for x in range(10000):
    data.append( (random.randint(0,9), random.randint(0,9)) )
df = spark.createDataFrame(data, ("label", "data"))

df.show()

# Definir la tubería que transforma los datos en entrada los que usa la regresión
result = Pipeline(stages=[
    VectorAssembler(inputCols=["data"], outputCol="features")
]).fit(df).transform(df)

start_time = time()

# Definir el modelo de regresión
lr = LinearRegression(maxIter=50, regParam=1.12)

# Calcular la regresión
model = lr.fit(result)

# Calcular tiempo empleado en realizar la regresión
elapsed_time = time() - start_time
print("Elapsed time: %.10f seconds." % elapsed_time)

# Mostrar los resultados de la regresión
print(model.coefficients)
print(model.intercept)

# Cerrar la sesión de Spark
spark.stop()

Otros artículos que pueden ser de interés:

Autor: Diego Calvo