PyMC 马尔科夫链蒙特卡洛采样工具开源项目

我要开发同款
匿名用户2017年03月01日
108阅读
开发技术Python
所属分类人工智能、机器学习/深度学习
授权协议AFL 3.0

作品详情

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

特性

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

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

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

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

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

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

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

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

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

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

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

安装

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

预装库

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

Python2.6及以上版本

NumPy(1.6版本及以上)

Matplotlib(1.0版本及以上)

SciPy(可选)

pyTables(可选)

pydot(可选)

IPython(可选)

nose(可选)

使用方法:

1.模型定义:

# Import relevant modulesimport pymcimport numpy as np# Some datan = 5*np.ones(4,dtype=int)x = np.array([-.86,-.3,-.05,.73])# Priors on unknown parametersalpha = pymc.Normal('alpha',mu=0,tau=.01)beta = pymc.Normal('beta',mu=0,tau=.01)# Arbitrary deterministic function of parameters@pymc.deterministicdef theta(a=alpha, b=beta):"""theta = logit^{-1}(a+b)"""return pymc.invlogit(a+b*x)# Binomial likelihood for datad = pymc.Binomial('d', n=n, p=theta, value=np.array([0.,1.,3.,5.]),\              observed=True)

调用模型:

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

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

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论