開始使用免費開始

編譯並訓練模型

既然你已經有一個包含 2 個輸出的模型,請用 2 個 loss 來編譯它:對於 'score_diff' 使用平均絕對誤差(MAE),對於 'won' 使用二元交叉熵(也稱為 logloss)。接著,以 'seed_diff''pred' 作為輸入來訓練模型。輸出則同時預測 'score_diff''won'

這個模型可以利用比賽的分數來確保接近的比賽(分差小)比起大比分差的比賽(分差大)有更低的獲勝機率。

相較於分類問題,迴歸問題較容易,因為 MAE 對於因隨機因素導致的誤差懲罰較輕。例如,如果 score_diff 為 -1 且 won 為 0,代表 team_1 運氣不佳,僅以一記罰球之差落敗。這個較容易的任務所提供的資料,有助於模型找到較困難任務的解法。

本練習屬於課程

使用 Keras 的進階深度學習

檢視課程

練習說明

  • keras.optimizers 匯入 Adam
  • 以 2 個 loss 編譯模型:'mean_absolute_error''binary_crossentropy',並使用學習率為 0.01 的 Adam 最佳化器。
  • 'seed_diff''pred' 欄位作為輸入,'score_diff''won' 欄位作為目標來訓練模型。
  • 使用 10 個 epochs,batch size 設為 16384。

動手互動練習

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

# Import the Adam optimizer
____

# Compile the model with 2 losses and the Adam optimzer with a higher learning rate
model.____(loss=['____', '____'], optimizer=____)

# Fit the model to the tournament training data, with 2 inputs and 2 outputs
model.____(games_tourney_train[['____', '____']],
          [games_tourney_train[['____']], games_tourney_train[['____']]],
          epochs=____,
          verbose=True,
          batch_size=____)
編輯並執行程式碼