Preparazione alla Random Forest Regression

Feature Engineering con PySpark

John Hogue

Lead Data Scientist, General Mills

Ipotesi richieste per le feature

Random Forest Regression

  • Dati asimmetrici/non normali? OK
  • Non scalati? OK
  • Dati mancanti? OK
  • Dati categorici? OK

Ipotesi

Feature Engineering con PySpark

Feature aggiunte

Economiche

  • Tassi mutuo a 30 anni

Governative

  • Prezzo medio case per città
  • Percentuali età case per città
  • Percentuali dimensione case per città

Sociali

  • Walk Score
  • Bike Score

Stagionali

  • Festività bancarie
Feature Engineering con PySpark

Feature ingegnerizzate

Feature temporali

  • Valore limitato con un anno di dati
  • Settimane festive

Tassi, rapporti, somme

  • Contesto business
  • Contesto personale

Feature espanse

  • Colonne di testo non libero
  • Rimuovere osservazioni scarse
# Qual è la forma dei dati?
print((df.count(), len(df.columns)))
(5000, 126)
Feature Engineering con PySpark

Colonne del dataframe in feature vector

from pyspark.ml.feature import VectorAssembler
# Sostituisci i valori mancanti
df = df.fillna(-1)
# Definisci le colonne da convertire in vettori
features_cols = list(df.columns)
# Rimuovi la variabile dipendente dall'elenco
features_cols.remove('SALESCLOSEPRICE')
Feature Engineering con PySpark

Colonne del dataframe in feature vector

# Crea il trasformatore VectorAssembler
vec = VectorAssembler(inputCols=features_cols, outputCol='features')

# Applica il trasformatore ai dati df = vec.transform(df)
# Seleziona solo feature vector e variabile dipendente ml_ready_df = df.select(['SALESCLOSEPRICE', 'features'])
# Controlla i risultati ml_ready_df.show(5)
+----------------+--------------------+
| SALESCLOSEPRICE|            features|
+----------------+--------------------+
|143000          |(125,[0,1,2,3,5,6...|
|190000          |(125,[0,1,2,3,5,6...|
|225000          |(125,[0,1,2,3,5,6...|
|265000          |(125,[0,1,2,3,4,5...|
|249900          |(125,[0,1,2,3,4,5...|
+----------------+--------------------+
only showing top 5 rows
Feature Engineering con PySpark

Ora siamo pronti per il machine learning!

Feature Engineering con PySpark

Preparing Video For Download...