使用两个深度学习模型,如何在Python中对测试集进行更好的预测的贝叶斯模型平均化?

时间:2018-12-12 03:13:12

标签: python machine-learning scikit-learn deep-learning bayesian

给出两个可以在测试集上进行预测的深度学习模型,我要做的是使用BMA(贝叶斯模型平均)对模型进行平均以更好地进行预测?

确切的程序是什么?在有关BMA如何工作的文献中,我努力了解p(h)的确切含义,其中h是模型。

是否有使用Sklearn在Python中执行此操作的简单方法?

2 个答案:

答案 0 :(得分:0)

您必须从每个模型中获得预测的概率,然后将它们取平均值以获得最终概率,

我认为p(H)表示从模型H输出的概率

答案 1 :(得分:0)

如果您有一个使用softmax激活函数的密集层,则输出层的每个节点将提供一个概率值。

因此,您在输出层有10个节点,意味着10个类。您将拥有10个概率值,每个概率值代表每个类别。

现在从两个模型中您将获得10 * 2的概率值(如果每个输出层中有10个节点)。 BMA根据一些数学公式生成模型,需要根据数据进行选择。

您可以使用以下github存储库中的代码来计算BMA:

https://github.com/martinaragoneses/bma