
106
|
第
3
章
我们用
Keras
函数式
API
将各个部分组合在一起得到了集成模型:
member_inputs = [model.input for model in members]
#
拼接合并各模型的输出
member_outputs = [model.output for model in members]
merge = layers.concatenate(member_outputs)
hidden = layers.Dense(10, activation='relu')(merge)
ensemble_output = layers.Dense(1, activation='relu')(hidden) ensemble_model =
Model(inputs=member_inputs, outputs=ensemble_output)
#
绘制集成模型的图
tf.keras.utils.plot_model(ensemble_model, show_shapes=True,
to_file='ensemble_graph.png')
#
编译
ensemble_model.compile(loss='mse', optimizer='adam', metrics=['mse'])
在这个例子中,次级模型是一个有两个隐藏层的密集神经网络。通过训练,该网络
学习如何在进行预测时最好地结合集成成员的结果。
为什么有效
像
bagging
这样的模型平均方法之所以有效,是因为集成模型中的每个成员通常不会 ...