【问题标题】:How do I add a constraint to a PyMC3 model?如何向 PyMC3 模型添加约束?
【发布时间】:2017-12-14 18:45:49
【问题描述】:

如果我们考虑 PyMC3 的以下线性回归示例:

http://docs.pymc.io/notebooks/getting_started.html#A-Motivating-Example:-Linear-Regression

我们如何包含a + b1 + b2 = 1 or a^2 + b1^2 = 25 之类的约束?

我知道我们可以使用 Bound 为变量创建边界,但我不确定如何添加更复杂的约束。

感谢您的帮助!

【问题讨论】:

    标签: pymc3


    【解决方案1】:

    一般的解决方案是使用电位。

    const = pm.Potential('const', pm.math.switch(pm.math.eq(a**2 + b1**2, 25),
                                                 0,
                                                 -np.inf))
    

    潜力是您可以添加到模型可能性中的任意因素。在此示例中,如果参数满足您的约束,则不添加任何内容,否则添加 -inf。

    您也可以提问here以备将来参考

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-15
      • 2020-06-25
      • 2013-09-06
      • 2020-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多