開始使用免費開始

更深入的特徵

在前面的練習中,我們示範了把兩個特徵結合,如何為預測模型創造有用的額外特徵。本題中,你要把三個變數的影響合併成一個,產生「更深入」的特徵。接著你會檢查:更深入、也更複雜的特徵,是否一定能帶來更好的預測效果。

本練習屬於課程

使用 PySpark 進行特徵工程

檢視課程

練習說明

  • SQFTBELOWGROUNDSQFTABOVEGROUND 相加,建立新欄位 Total_SQFT 作為新特徵。
  • Total_SQFT 為基礎,搭配 BATHSTOTAL 建立另一個名為 BATHS_PER_1000SQFT 的特徵。記得把 Total_SQFT 縮放為以 1000 為單位。
  • 使用 describe() 檢視我們最新特徵 BATHS_PER_1000SQFT 的最小值、最大值與平均值。有沒有發現什麼不尋常的地方?
  • 建立兩個 jointplots(),分別以 Total_SQFTBATHS_PER_1000SQFT 作為 $x$,SALESCLOSEPRICE 作為 $y,比較哪一個有更好的 R**2 擬合。這個更複雜的特徵與SALESCLOSEPRICE` 的關係是否更強?

動手互動練習

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

# Create new feature by adding two features together
df = df.____(____, df[____] + df[____])

# Create additional new feature using previously created feature
df = df.____(____, df[____] / (df[____] / ____))
df[[____]].____().show()

# Sample and create pandas dataframe
pandas_df = df.sample(False, 0.5, 0).toPandas()

# Linear model plots
sns.jointplot(x=____, y=____, data=pandas_df, kind="reg", stat_func=r2)
plt.show()
sns.jointplot(x=____, y=____, data=pandas_df, kind="reg", stat_func=r2)
plt.show()
編輯並執行程式碼