jmatta1 / mcmcpp Goto Github PK
View Code? Open in Web Editor NEWA C++ header only library that performs Markov chain Monte Carlo sampling in several forms.
License: MIT License
A C++ header only library that performs Markov chain Monte Carlo sampling in several forms.
License: MIT License
The object to calculate all the 1D and 2D histograms of the posterior probability distribution needs to be written.
Currently the MCMCpp/Analysis/CovMatrix.h file is completely empty. Write a class that can calculate the covariance matrix for an ensemble.
Being able to store chains would be very useful.
As it says in the title, it would be useful to be able to find the peak location of a parameter in a histogram, both as a value and as a percentile.
Simulated annealing and tempering can be added, essentially ad-hoc to all movers. Doing this expands the utility of the library.
This sampler uses Langevin dynamics to propose new points for the Metropolis-Hastings MCMC algorithm
The MCMC::Analysis::AutoCorrCalc takes longer to calculate the integrated autocorrelation times than MCMC::EnsembleSampler<double, Mover::AutoRegressiveMove > took to calculate the chains in the test example.
Being able to store chains in a variety of formats would be very useful.
Being able to randomly perturb the proposal vector would allow a better exploration of certain types of posterior functions.
The object to find what values correspond to what percentiles needs to be implemented.
In the multi-threaded synchronization for stepping within RedBlackCtrler spin-locks are used to allow maximum performance for medium numbers of walkers and fast logPosteriorProbability functions. However, this can break things in the case that a user specifies that the MCMC uses more threads that the system supports in hardware, or in the case of running the program within a hypervisor like valgrind
which forces threads to run sequentially, for which spin locks can break everything (because one thread spins forever and never releases for the next thread to move through its work).
For histograms where the parameter limits are not similar there is a segfault generated during the binning.
This could be accomplished by splitting the calculation of autocovariance into another object and then allowing the autocorrelation calculation take the autocovariance as a parameter.
Being able to resume sampling could be useful. This object can take one of the chain readers, and use it to either read the full chain on disk into the chain in memory, or restore the final point in the chain so the system can simply start from there (if the walkers do not depend on the chain history, this is fine).
This object uses the chain writers in conjunction with a meta data file it generates to store a chain across multiple files, with a given number of steps per file.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.