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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 50c596a7c681308bf300f1b1408fd6d3c89c72692019332ddf293dbc779bcb8c |
|
MD5 | d8dc00c171f564fe14aa5838212aaad3 |
|
BLAKE2b-256 | c0d4e133995b71e2f245bb68f8fe3c3275114ee60075a4cf13128f9c45891a67 |
pymc_ext-1.0.1-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9b4336a022dd9823073c9ffdb41f1a67171b8b0f80435392dd822d3b4d9ce182 |
|
MD5 | 64935c1e3185ef05fcc49a98d81f09be |
|
BLAKE2b-256 | 84fd2a95356ca6916a2378b85c7ec34dffec62581138c2d07d2a538c9723ae73 |