statistics - channel : usage example

标签 statistics machine-learning bayesian-networks

有人用过Passage ,并行采样器发生器?

它可能对我非常有用,但我找到的唯一文档是 Github 上的三行自述文件 (https://github.com/cscherrer/passage) 和 Hackage 上的简洁 API。

如果有一个关于如何运行它的简单示例就太好了!

最佳答案

在较高层面上,Passage 有两个重要的 monad 需要记住:BayesianNetworkBayesianSimulator

首先,在 BayesianNetwork monad 中构建一个模型:

myModel :: Int -> BayesianNetwork (Node, Node, [Node])
myModel n = do
  mu <- normal 0 0.001
  tau <- improperScale
  xs <- replicateM n $ normal mu tau
  return (mu, tau, xs)

这被指定为生成模型,因此任何非随机的东西(此处为数据点的数量n)都必须作为参数传递。或者,我们可以在 n 上进行分发。

接下来,我们构建一个调用模型的模拟器:

mySim :: [Double] -> BayesianSimulator ()
mySim xs0 = do
  setThreadNum 4
  let n = length xs0
  (mu, tau, xs) <- model $ myModel n
  forM (zip xs xs0) $ \(x, x0) -> observe x x0
  monitor mu
  monitor tau

最后,获取一些数据:

xs0 = [1, -1, 2, 2, 2, -2]

并运行模拟器:

main = genSimulator "myExample" (mySim xs0)

这将创建一个新目录 myExample,其中包含采样器的 OpenMP 代码。

关于statistics - channel : usage example,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9785416/

相关文章:

machine-learning - 亲和性传播首选项初始化

r - 使用 rjags 定义条件线性高斯网络

graphviz - 我可以最小化点图中的弧长吗?

r - r 的显着差异

r - 在 R 中,如何创建一个函数,其中向量中的所有数字都被重新缩放,Inf 变为 1,而 -Inf 变为 0?

python - 如何使用 Mu 和 Sigma 在 Python 中获得对数正态分布?

python - 类数,4,与 target_names 的大小不匹配,6。尝试指定标签参数

javascript - javascript 中具有两个自变量的线性回归

machine-learning - 在 PyTorch 中使用 WeightedRandomSampler

machine-learning - 使用朴素贝叶斯分类器进行文档分类