Förberedelser för Random Forest-regression

Feature Engineering med PySpark

John Hogue

Lead Data Scientist, General Mills

Antaganden för särdrag

Random Forest-regression

  • Skev/icke-normalfördelad data? OK
  • Oskalad data? OK
  • Saknade värden? OK
  • Kategorisk data? OK

Antaganden

Feature Engineering med PySpark

Tillagda särdrag

Ekonomiska

  • 30-åriga bolåneräntor

Statliga

  • Medianpris för bostäder i staden
  • Åldersproportioner för bostäder i staden
  • Storleksproportioner för bostäder i staden

Sociala

  • Gångvänlighetspoäng
  • Cykelvänlighetspoäng

Säsongsbaserade

  • Helgdagar
Feature Engineering med PySpark

Konstruerade särdrag

Tidsberoende särdrag

  • Begränsat värde med ett års data
  • Helgdagsveckor

Kvoter, nyckeltal och summor

  • Affärskontext
  • Personlig kontext

Utökade särdrag

  • Kolumner utan fritext
  • Observationer med lågt antal måste tas bort
# What is shape of our data?
print((df.count(), len(df.columns)))
(5000, 126)
Feature Engineering med PySpark

Från dataramskolumner till särdragsvektorer

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 med PySpark

Från dataramskolumner till särdragsvektorer

# 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 med PySpark

Nu är vi redo för maskininlärning!

Feature Engineering med PySpark

Preparing Video For Download...