開始使用免費開始

模型集成

改進機器學習模型預測的一種方法是集成(ensembling)。最基本的作法是對多個模型的預測取平均。更進一步,可以把各模型的預測再餵給「另一個」模型,讓它產生最終預測。兩種方法通常都能提升整體效能(前提是單一模型本身要夠好)。如果你還記得,隨機森林其實也是把很多決策樹做集成。

要集成我們的神經網路預測,我們會用剛建立的 3 個模型來做預測——基本模型、自訂損失函式的模型,以及包含 dropout 的模型。然後用 numpy.hstack() 函式把這些預測水平堆疊起來,並用 np.mean(predictions, axis=1) 沿著列取平均,得到最終的平均預測。

本練習屬於課程

Python 金融 Machine Learning

檢視課程

練習說明

  • 使用 .predict() 方法,針對我們訓練好的 3 個模型(model_1model_2model_3),分別在 scaled_train_featuresscaled_test_features 上產生預測。
  • 將這些預測用 np.hstack() 水平堆疊成一個矩陣,並沿列取平均,得到訓練集與測試集的平均預測。

動手互動練習

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

# Make predictions from the 3 neural net models
train_pred1 = model_1.predict(____)
test_pred1 = model_1.predict(____)

train_pred2 = ____
test_pred2 = ____

train_pred3 = model_3.predict(scaled_train_features)
test_pred3 = model_3.predict(scaled_test_features)

# Horizontally stack predictions and take the average across rows
train_preds = np.mean(np.hstack((train_pred1, train_pred2, train_pred3)), axis=1)
test_preds = np.mean(____, ____)
print(test_preds[-5:])
編輯並執行程式碼