模型集成
改进机器学习模型预测的一种方法是集成。一个基础做法是对多个模型的预测取平均。更复杂的方法是把各模型的预测作为输入,喂给「另一个」模型来做最终预测。这两种方法通常都能提升整体表现(只要各个单模型本身足够好)。如果您还记得,随机森林也是将多棵决策树进行集成。
要对我们的神经网络预测做集成,我们将用刚训练好的 3 个模型进行预测——基础模型、自定义损失函数的模型,以及包含 dropout 的模型。接着使用 numpy 的 .hstack() 函数把这些预测横向合并,再用 np.mean(predictions, axis=1) 按行取平均,得到最终的集成预测。
本练习是课程的一部分
Python 金融机器学习
练习说明
- 使用
.predict()方法,让我们拟合好的 3 个模型(model_1、model_2、model_3)分别在scaled_train_features和scaled_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:])