概率编程与贝叶斯建模:从文本消息到A/B测试
1. 确定性包装器与 PyMC 基础
在概率编程中,确定性变量是一个重要概念。以文本消息示例来说,我们定义了一个关于 $\lambda$ 的模型:
$\lambda = \begin{cases}
\lambda_1 & \text{if } t < \tau \
\lambda_2 & \text{if } t \geq \tau
\end{cases}$
在 PyMC 代码中,实现如下:
import numpy as np
n_data_points = 5
# in Chapter 1 we had ˜70 data points
@pm.deterministic
def lambda_(tau=tau, lambda_1=lambda_1, lambda_2=lambda_2):
out = np.zeros(n_data_points)
out[:tau] = lambda_1
# lambda before tau is lambda 1
out[tau:] = lambda_2
# lambda after tau is lambda 2
return out
显然,如果 $\tau$、$\lambda_1$ 和 $\lambda_2$ 已知,那么 $\lambda$ 就完全确定了,所以它是一个确定性变量。
在 @pm.deterministic 装饰器内部,传
超级会员免费看
订阅专栏 解锁全文
34

被折叠的 条评论
为什么被折叠?



