更深入的特徵
在前面的練習中,我們示範了把兩個特徵結合,如何為預測模型創造有用的額外特徵。本題中,你要把三個變數的影響合併成一個,產生「更深入」的特徵。接著你會檢查:更深入、也更複雜的特徵,是否一定能帶來更好的預測效果。
本練習屬於課程
使用 PySpark 進行特徵工程
練習說明
- 將
SQFTBELOWGROUND與SQFTABOVEGROUND相加,建立新欄位Total_SQFT作為新特徵。 - 以
Total_SQFT為基礎,搭配BATHSTOTAL建立另一個名為BATHS_PER_1000SQFT的特徵。記得把Total_SQFT縮放為以 1000 為單位。 - 使用
describe()檢視我們最新特徵BATHS_PER_1000SQFT的最小值、最大值與平均值。有沒有發現什麼不尋常的地方? - 建立兩個
jointplots(),分別以Total_SQFT與BATHS_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()