開始使用免費開始

Scaling your scalers

在前一個練習中,我們對單一變數做了 min-max 縮放。現在假設你有很多變數需要縮放,就不想為每個變數都寫上百行程式碼。讓我們延伸上一題,把它封裝成一個函式。

本練習屬於課程

使用 PySpark 進行特徵工程

檢視課程

練習說明

  • 定義名為 min_max_scaler 的函式,參數為資料框 df,以及要縮放欄位的清單 cols_to_scale
  • 使用 for 迴圈走訪清單中的每個欄位,並對它們做 min-max 縮放。
  • 回傳加入新欄位後的資料框 df
  • df 與欄位清單 cols_to_scale 套用函式 min_max_scaler()

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

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()
編輯並執行程式碼