डेटा समायोजित करना

PySpark के साथ Feature Engineering

John Hogue

Lead Data Scientist, General Mills

डेटा ट्रांसफॉर्म क्यों करें?

ट्रांसफॉर्मेशन

PySpark के साथ Feature Engineering

MinMax स्केलिंग क्या है

मिन-मैक्स स्केलिंग

PySpark के साथ Feature Engineering

मिनमैक्स स्केलिंग

# define min and max values and collect them
max_days = df.agg({'DAYSONMARKET': 'max'}).collect()[0][0]
min_days = df.agg({'DAYSONMARKET': 'min'}).collect()[0][0]

# create a new column based off the scaled data df = df.withColumn("scaled_days", (df['DAYSONMARKET'] - min_days) / (max_days - min_days))
df[['scaled_days']].show(5)
+--------------------+
|         scaled_days|
+--------------------+
|0.044444444444444446|
|0.017777777777777778|
| 0.12444444444444444|
| 0.08444444444444445|
| 0.09333333333333334|
+--------------------+
only showing top 5 rows
PySpark के साथ Feature Engineering

स्टैंडर्डाइजेशन क्या है?

डेटा को स्टैंडर्ड नॉर्मल डिस्ट्रीब्यूशन में बदलें

  • z = (x - μ)/ σ
  • Mean, μ = 0
  • Standard Deviation, σ = 1

स्टैंडर्डाइजेशन

PySpark के साथ Feature Engineering

स्टैंडर्डाइजेशन

mean_days = df.agg({'DAYSONMARKET': 'mean'}).collect()[0][0]
stddev_days = df.agg({'DAYSONMARKET': 'stddev'}).collect()[0][0]

# Create a new column with the scaled data df = df.withColumn("ztrans_days", (df['DAYSONMARKET'] - mean_days) / stddev_days)
df.agg({'ztrans_days': 'mean'}).collect()
[Row(avg(ztrans_days)=-3.6568525985103407e-16)]
df.agg({'ztrans_days': 'stddev'}).collect()
[Row(stddev(ztrans_days)=1.0000000000000009)]
PySpark के साथ Feature Engineering

Log स्केलिंग क्या है

अनस्केल्ड डिस्ट्रीब्यूशन

रॉ डिस्ट प्लॉट

लॉग-स्केल्ड डिस्ट्रीब्यूशन

लॉग स्केल्ड डिस्ट प्लॉट

PySpark के साथ Feature Engineering

लॉग स्केलिंग

# import the log function
from pyspark.sql.functions import log
# Recalculate log of SALESCLOSEPRICE
df = df.withColumn('log_SalesClosePrice', log(df['SALESCLOSEPRICE']))
PySpark के साथ Feature Engineering

अभ्यास करते हैं!

PySpark के साथ Feature Engineering

Preparing Video For Download...