tbmiller-astro / nautilus

Neural Network-Boosted Importance Nested Sampling for Bayesian Statistics

Home Page:https://nautilus-sampler.readthedocs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Logo

Unit Testing Status Code Coverage Documentation Status PyPI Conda License: MIT Language: Python

Nautilus is an MIT-licensed pure-Python package for Bayesian posterior and evidence estimation. It utilizes importance sampling and efficient space exploration using neural networks. Compared to traditional MCMC and Nested Sampling codes, it needs fewer likelihood calls and produces much larger posterior samples. Additionally, nautilus is highly accurate and produces Bayesian evidence estimates with percent precision.

Example

This example, sampling a 3-dimensional Gaussian, illustrates how to use nautilus.

import corner
import numpy as np
from nautilus import Prior, Sampler
from scipy.stats import multivariate_normal

prior = Prior()
for key in 'abc':
    prior.add_parameter(key)

def likelihood(param_dict):
    x = [param_dict[key] for key in 'abc']
    return multivariate_normal.logpdf(x, mean=[0.4, 0.5, 0.6], cov=0.01)

sampler = Sampler(prior, likelihood)
sampler.run(verbose=True)
points, log_w, log_l = sampler.posterior()
corner.corner(points, weights=np.exp(log_w), labels='abc')

Documentation

You can find the documentation at nautilus-sampler.readthedocs.io.

License

Nautilus is licensed under the MIT License. The logo uses an image from the Illustris Collaboration.

About

Neural Network-Boosted Importance Nested Sampling for Bayesian Statistics

https://nautilus-sampler.readthedocs.io

License:MIT License


Languages

Language:Python 100.0%