Voorbereiden op Random Forest-regressie

Feature Engineering met PySpark

John Hogue

Lead Data Scientist, General Mills

Benodigde aannames voor features

Random Forest-regressie

  • Scheve/niet-normale data? Oké
  • Ongeschaald? Oké
  • Missende data? Oké
  • Categoriale data? Oké

Aannames

Feature Engineering met PySpark

Toegevoegde features

Economisch

  • 30-jaars hypotheekrente

Overheid

  • Medianen huizenprijs per stad
  • Percentage woningleeftijden per stad
  • Percentage woninggroottes per stad

Sociaal

  • Walk Score
  • Bike Score

Seizoensgebonden

  • Bank holidays
Feature Engineering met PySpark

Geëngineerde features

Tijdelijke features

  • Beperkte waarde met één jaar data
  • Feestweken

Ratio’s, verhoudingen, sommen

  • Zakelijke context
  • Persoonlijke context

Uitgebreide features

  • Niet-vrije-tekstkolommen
  • Lage aantallen verwijderen
# Wat is de shape van onze data?
print((df.count(), len(df.columns)))
(5000, 126)
Feature Engineering met PySpark

Dataframekolommen naar featurevectoren

from pyspark.ml.feature import VectorAssembler
# Vervang missende waarden
df = df.fillna(-1)
# Kolommen definiëren voor vectorconversie
features_cols = list(df.columns)
# Doelvariabele uit de lijst verwijderen
features_cols.remove('SALESCLOSEPRICE')
Feature Engineering met PySpark

Dataframekolommen naar featurevectoren

# Maak de vectorassembler-transformer
vec = VectorAssembler(inputCols=features_cols, outputCol='features')

# Pas de vectortransformer toe op de data df = vec.transform(df)
# Selecteer alleen de featurevectoren en de doelvariabele ml_ready_df = df.select(['SALESCLOSEPRICE', 'features'])
# Resultaten bekijken 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 met PySpark

We zijn klaar voor machine learning!

Feature Engineering met PySpark

Preparing Video For Download...