跳转到主要内容

PyMC Extras是从

项目描述

PyMC Extras

这个库包括从exoplanet项目提取的各种实验性或特殊用途的PyMC附加组件。它的主要组件是一些用于非线性优化一些自定义分布的辅助函数。

安装

您需要一个Python安装,通常最好使用conda来安装PyMC,以便它可以处理编译器设置的详细信息。这一步是 可选的,但我通常会为使用PyMC的项目创建一个干净的conda环境

# Optional
conda create -n name-of-my-project pymc
conda activate name-of-my-project

安装此包的最简单方法是使用pip

python -m pip install -U pymc-ext

这将还会更新依赖项,如PyMC,这可能正是您想要的,因为此包仅在最新版本的该软件包上进行了测试。

优化

当PyMC向pm.find_MAP函数添加警告时,我们在exoplanet中实现了一个自定义的非线性优化框架,因为当在许多天体物理学(以及可能的其他领域)问题中初始化采样器时,通常需要优化(至少)一些参数。尽管pm.find_MAP不再报错,但为了向后兼容,这里仍包含pymc_ext.optimize函数,尽管它的行为应该与pm.find_MAP相似。要使用此函数,您将执行类似以下操作

import pymc_ext as pmx

with model:
    soln = pmx.optimize(vars=[var1, var2])
    soln = pmx.optimize(start=soln, vars=[var3])

分布

本库中的大多数自定义分布都是为了使处理周期性参数(如角度)变得更加容易。所有这些重新参数化都可以手动实现,但将它们放在更紧凑的形式中可能会有用。以下是包含的分布及其简要说明的列表

  • pmx.unit_disk:二维参数被限制在单位圆盘内。当您有一个角度和必须介于零到一之间的幅度时(例如,一个被绑定轨道的离心率向量),这将非常有用。此分布被限制,使得沿零轴的平方和始终小于一。请注意,此分布的形状在零轴上必须是二维。
  • pmx.angle:角度被限制在-pi到pi的范围内。实际采样是在二维向量空间(sin(theta), cos(theta))中进行的,这样采样器就不会在pi处看到不连续性。作为一个技术细节,可以使用regularization参数来影响此分布的性能,该参数有助于处理当此参数被很好地/不很好地约束时所引入的病态几何形状。默认值(10.0)被选为一个合理的默认选择,但您可能通过调整此值获得更好的性能。

需要注意的是,这些不是Distribution 对象,而是将Distribution对象添加到模型中并返回感兴趣的重新参数化变量的函数。此接口的易用性值得怀疑,但维护此接口比实现自定义Distribution对象更容易。

许可证

版权所有 2020-2022 Dan Foreman-Mackey 及贡献者。

pymc-ext 是在 MIT 许可证下提供的免费软件。有关详细信息,请参阅 LICENSE 文件。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。

源代码发行版

pymc_ext-1.0.1.tar.gz (15.3 kB 查看哈希值)

上传时间 源代码

构建分发版

pymc_ext-1.0.1-py2.py3-none-any.whl (8.4 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面