马尔科夫链蒙特卡洛采样工具 PyMC

码农软件 · 软件分类 · 机器学习/深度学习 · 2019-08-06 22:27:51

软件介绍

PyMC是一个实现贝叶斯统计模型和马尔科夫链蒙塔卡洛采样工具拟合算法的Python库。PyMC的灵活性及可扩展性使得它能够适用于解决各种问题。除了包含核心采样功能,PyMC还包含了统计输出、绘图、拟合优度检验和收敛性诊断等方法。

特性

PyMC使得贝叶斯分析尽可能更加容易。以下是一些PyMC库的特性:

  • 用马尔科夫链蒙特卡洛算法和其他算法来拟合贝叶斯统计分析模型。

  • 包含了大范围的常用统计分布。

  • 尽可能地使用了NumPy的一些功能。

  • 包括一个高斯建模过程的模块。

  • 采样循环可以被暂停和手动调整,或者保存和重新启动。

  • 创建包括表格和图表的摘要说明。

  • 算法跟踪记录可以保存为纯文本,pickles,SQLite或MySQL数据库文档或HDF5文档。

  • 提供了一些收敛性诊断方法。

  • 可扩展性:引入自定义的步骤方法和非常规的概率分布。

  • MCMC循环可以嵌入在较大的程序中,结果可以使用Python进行分析。

安装

PyMC可以运行在Mac OS X,Linux和Windows系统中。安装一些其他预装库可以更大程度地提高PyMC的性能和功能。

预装库

PyMC的运行要求一些预装库的安装及配置。

使用方法:

1. 模型定义:

# Import relevant modules
import pymc
import numpy as np

# Some data
n = 5*np.ones(4,dtype=int)
x = np.array([-.86,-.3,-.05,.73])

# Priors on unknown parameters
alpha = pymc.Normal('alpha',mu=0,tau=.01)
beta = pymc.Normal('beta',mu=0,tau=.01)

# Arbitrary deterministic function of parameters
@pymc.deterministic
def theta(a=alpha, b=beta):
"""theta = logit^{-1}(a+b)"""
return pymc.invlogit(a+b*x)

# Binomial likelihood for data
d = pymc.Binomial('d', n=n, p=theta, value=np.array([0.,1.,3.,5.]),\
              observed=True)

调用模型:

import pymc
import mymodel

S = pymc.MCMC(mymodel, db='pickle')
S.sample(iter=10000, burn=5000, thin=2)
pymc.Matplot.plot(S)

以上代码运行会产生10000个后验样本。这个样本会存储在Python序列化数据库中。

本文地址:https://www.codercto.com/soft/d/11806.html

云攻略

云攻略

马克·贝尼奥夫、卡莱尔·阿德勒 / 徐杰 / 海天出版社 / 2010年8月 / 36.00元

Apple、Google、甲骨文、腾讯 都已投入了云的怀抱, 你还在等什么? 快来加入我们! 最初,Salesforce.com 只是一间小小的租赁公寓 在短短10年内 它已成长为 世界上发展最快、最具创新力的 产业变革领导者 曾经,这是个软件为王的时代。 现在,这是个云计算的新时代。 NO SOFTWARE 抛弃软件的......一起来看看 《云攻略》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具