เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ปรับขนาดข้อมูลด้วยฟังก์ชัน Scaler

ในแบบฝึกหัดที่แล้ว เราใช้ minmax scaling กับตัวแปรเดียว แต่ถ้ามีตัวแปรจำนวนมากที่ต้องปรับขนาด การเขียนโค้ดทีละบรรทัดสำหรับแต่ละตัวแปรคงไม่ไหวแน่ มาต่อยอดจากแบบฝึกหัดก่อนหน้าด้วยการสร้างฟังก์ชันขึ้นมาใช้งานกัน

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Feature Engineering with PySpark

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้างฟังก์ชันชื่อ min_max_scaler โดยรับพารามิเตอร์ df (dataframe) และ cols_to_scale (รายการคอลัมน์ที่ต้องการปรับขนาด)
  • ใช้ลูป for วนซ้ำผ่านแต่ละคอลัมน์ในรายการ แล้วทำ minmax scaling
  • คืนค่า dataframe df พร้อมคอลัมน์ใหม่ที่เพิ่มเข้ามา
  • เรียกใช้ฟังก์ชัน min_max_scaler() กับ df และรายการคอลัมน์ cols_to_scale

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

def ____(____, ____):
  # Takes a dataframe and list of columns to minmax scale. Returns a dataframe.
  for col in ____:
    # Define min and max values and collect them
    max_days = df.agg({col: 'max'}).collect()[0][0]
    min_days = df.agg({____: 'min'}).collect()[0][0]
    new_column_name = 'scaled_' + col
    # Create a new column based off the scaled data
    df = df.withColumn(____, 
                      (df[____] - min_days) / (max_days - min_days))
  return ____
  
df = min_max_scaler(____, ____)
# Show that our data is now between 0 and 1
df[['DAYSONMARKET', 'scaled_DAYSONMARKET']].show()
แก้ไขและรันโค้ด