Підготовка до Random Forest Regression

Опрацювання ознак у PySpark

John Hogue

Lead Data Scientist, General Mills

Необхідні припущення для ознак

Random Forest Regression

  • Перекошені/не нормальні дані? ОК
  • Без масштабування? ОК
  • Пропуски? ОК
  • Категоріальні дані? ОК

Припущення

Опрацювання ознак у PySpark

Додані ознаки

Економічні

  • Іпотечні ставки на 30 років

Державні

  • Медіанна ціна житла в місті
  • Частки за віком житла в місті
  • Частки за розміром житла в місті

Соціальні

  • Walk Score
  • Bike Score

Сезонні

  • Банківські свята
Опрацювання ознак у PySpark

Сконструйовані ознаки

Часові ознаки

  • Обмежена цінність за одного року даних
  • Тижні зі святами

Ставки, коефіцієнти, суми

  • Бізнес-контекст
  • Особистий контекст

Розширені ознаки

  • Стовпці з нефрітекстом
  • Потрібно прибрати рідкісні значення
# What is shape of our data?
print((df.count(), len(df.columns)))
(5000, 126)
Опрацювання ознак у PySpark

Перетворення стовпців датафрейму на вектори ознак

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')
Опрацювання ознак у PySpark

Перетворення стовпців датафрейму на вектори ознак

# 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
Опрацювання ознак у PySpark

Тепер ми готові до машинного навчання!

Опрацювання ознак у PySpark

Preparing Video For Download...