Pregătirea pentru Regresia Random Forest

Feature Engineering cu PySpark

John Hogue

Lead Data Scientist, General Mills

Ipoteze necesare pentru caracteristici

Regresia Random Forest

  • Date asimetrice/non-normale? OK
  • Nescalate? OK
  • Date lipsă? OK
  • Date categoriale? OK

Ipoteze

Feature Engineering cu PySpark

Caracteristici adăugate

Economic

  • Rata ipotecii pe 30 de ani

Guvernamental

  • Prețul median al locuințelor per oraș
  • Procentaje vârstă locuință per oraș
  • Procentaje suprafață locuință per oraș

Social

  • Scor pietonal
  • Scor ciclism

Sezonier

  • Sărbători legale
Feature Engineering cu PySpark

Caracteristici create prin inginerie

Caracteristici temporale

  • Valoare limitată cu un an de date
  • Săptămâni de sărbători

Rate, Rapoarte, Sume

  • Context de afaceri
  • Context personal

Caracteristici extinse

  • Coloane de text non-liber
  • Necesită eliminarea observațiilor rare
# What is shape of our data?
print((df.count(), len(df.columns)))
(5000, 126)
Feature Engineering cu PySpark

Coloane DataFrame la Vectori de Caracteristici

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

Coloane DataFrame la Vectori de Caracteristici

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

Suntem acum pregătiți pentru învățare automată!

Feature Engineering cu PySpark

Preparing Video For Download...