航班時間模型:加入更多特徵!
讓我們把更多特徵加入模型。這不一定會帶來更好的模型。加入某些特徵可能會改善模型,但加入其他特徵可能會讓結果變差。
更多特徵會「一定」讓模型更複雜,也更難解釋。
接下來的模型你會加入以下特徵:
kmorg(起飛機場,one-hot 編碼,8 個層級)depart(起飛時間,依每 3 小時分箱,one-hot 編碼,8 個層級)dow(起飛星期幾,one-hot 編碼,7 個層級),以及mon(起飛月份,one-hot 編碼,12 個層級)。
這些已組合成 features 欄位,為 32 個欄位的稀疏表示法(記得 one-hot 編碼產生的欄位數會比層級數少 1)。
資料以 flights 提供,並隨機分割為 flights_train 與 flights_test。
本練習使用航班資料的一小部分子集。
本練習屬於課程
使用 PySpark 的機器學習
練習說明
- 對訓練資料擬合線性迴歸模型。
- 針對測試資料產生預測值。
- 計算測試資料的 RMSE。
- 檢視模型係數。是否有任何係數為 0?
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
from pyspark.ml.regression import ____
from pyspark.ml.evaluation import ____
# Fit linear regression model to training data
regression = ____(____).____(____)
# Make predictions on testing data
predictions = regression.____(____)
# Calculate the RMSE on testing data
rmse = ____(____).____(____)
print("The test RMSE is", rmse)
# Look at the model coefficients
coeffs = regression.____
print(coeffs)