Vorbereitung für Random-Forest-Regression

Feature Engineering mit PySpark

John Hogue

Lead Data Scientist, General Mills

Erforderliche Annahmen für Features

Random-Forest-Regression

  • Schiefe/nicht-normalverteilte Daten? OK
  • Nicht skaliert? OK
  • Fehlende Werte? OK
  • Kategorische Daten? OK

Annahmen

Feature Engineering mit PySpark

Ergänzte Features

Wirtschaftlich

  • 30-jährige Hypothekenzinsen

Regierung

  • Medianpreis für Häuser in der Stadt
  • Hausalter-Anteile in der Stadt
  • Hausgrößen-Anteile in der Stadt

Sozial

  • Walk Score
  • Bike Score

Saisonal

  • Bankfeiertage
Feature Engineering mit PySpark

Feature Engineering

Zeitliche Features

  • Begrenzter Nutzen bei einem Jahr Daten
  • Feiertagswochen

Quoten, Verhältnisse, Summen

  • Business-Kontext
  • Persönlicher Kontext

Erweiterte Features

  • Nicht-freiformige Textspalten
  • Wenige Beobachtungen entfernen
# What is shape of our data?
print((df.count(), len(df.columns)))
(5000, 126)
Feature Engineering mit PySpark

DataFrame-Spalten zu Feature-Vektoren

from pyspark.ml.feature import VectorAssembler
# Replace Missing values
df = df.fillna(-1)
# Define the columns to be converted to vectors
features_cols = list(df.columns)
# Remove the dependent variable from the list
features_cols.remove('SALESCLOSEPRICE')
Feature Engineering mit PySpark

DataFrame-Spalten zu Feature-Vektoren

# Create the vector assembler transformer
vec = VectorAssembler(inputCols=features_cols, outputCol='features')

# Apply the vector transformer to data df = vec.transform(df)
# Select only the feature vectors and the dependent variable ml_ready_df = df.select(['SALESCLOSEPRICE', 'features'])
# Inspect Results 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 mit PySpark

Jetzt sind wir bereit für Machine Learning!

Feature Engineering mit PySpark

Preparing Video For Download...