Come implementare la regressione Random Forest in PySpark

Implementazione regressione Random Forest in PySpark

Un tutorial PySpark sulla modellazione di regressione con Random Forest

Foto di Jachan DeVol su Unsplash

Introduzione

PySpark è un potente motore di elaborazione dati costruito su Apache Spark e progettato per l’elaborazione di dati su larga scala. Fornisce scalabilità, velocità, versatilità, integrazione con altri strumenti, facilità d’uso, librerie integrate di machine learning e capacità di elaborazione in tempo reale. È una scelta ideale per gestire in modo efficiente ed efficace compiti di elaborazione dati su larga scala, e la sua interfaccia utente intuitiva consente di scrivere facilmente codice in Python.

Utilizzando i dati sui diamanti trovati su ggplot2 (fonte, licenza), esamineremo come implementare un modello di regressione con random forest e analizzare i risultati con PySpark. Se desideri vedere come la regressione lineare viene applicata allo stesso dataset in PySpark, puoi consultarlo qui!

In questo tutorial affronteremo i seguenti passaggi:

  1. Caricare e preparare i dati in un input vettorizzato
  2. Allenare il modello utilizzando RandomForestRegressor da MLlib
  3. Valutare le prestazioni del modello utilizzando RegressionEvaluator da MLlib
  4. Tracciare e analizzare l’importanza delle caratteristiche per la trasparenza del modello
Foto di Martin de Arriba su Unsplash

Preparare i dati

Il dataset “diamonds” contiene caratteristiche come “carat”, “color”, “cut”, “clarity” e altre, tutte elencate nella documentazione del dataset.

La variabile target che stiamo cercando di prevedere è “price”.

df = spark.read.csv("/databricks-datasets/Rdatasets/data-001/csv/ggplot2/diamonds.csv", header="true", inferSchema="true")display(df)

Come nel tutorial sulla regressione lineare, dobbiamo preprocessare i nostri dati in modo da ottenere un vettore risultante di caratteristiche numeriche da utilizzare come input del nostro modello. Dobbiamo codificare le nostre variabili categoriche in caratteristiche numeriche e poi combinarle con le nostre variabili numeriche per ottenere un unico vettore finale.

Ecco i passaggi per ottenere questo risultato: