Veriyi Ayarlama

PySpark ile Özellik Mühendisliği

John Hogue

Lead Data Scientist, General Mills

Neden Veriyi Dönüştürürüz?

Dönüşüm

PySpark ile Özellik Mühendisliği

MinMax Ölçekleme Nedir

Min Max Ölçekleme

PySpark ile Özellik Mühendisliği

Minmax Ölçekleme

# min ve max değerleri tanımla ve topla
max_days = df.agg({'DAYSONMARKET': 'max'}).collect()[0][0]
min_days = df.agg({'DAYSONMARKET': 'min'}).collect()[0][0]

# ölçeklenen veriye göre yeni bir sütun oluştur 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 ile Özellik Mühendisliği

Standartlaştırma Nedir?

Veriyi standart normal dağılıma dönüştür

  • z = (x - μ)/ σ
  • Ortalama, μ = 0
  • Standart sapma, σ = 1

Standartlaştırma

PySpark ile Özellik Mühendisliği

Standartlaştırma

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

# Ölçeklenmiş veriden yeni bir sütun oluştur 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 ile Özellik Mühendisliği

Log Ölçekleme Nedir

Ölçeklenmemiş dağılım

Ham Dağılım Grafiği

Log-ölçekli dağılım

Log Ölçekli Dağılım Grafiği

PySpark ile Özellik Mühendisliği

Log Ölçekleme

# log fonksiyonunu içe aktar
from pyspark.sql.functions import log
# SALESCLOSEPRICE'in log'unu yeniden hesapla
df = df.withColumn('log_SalesClosePrice', log(df['SALESCLOSEPRICE']))
PySpark ile Özellik Mühendisliği

Hadi pratik yapalım!

PySpark ile Özellik Mühendisliği

Preparing Video For Download...