Ecosyste.ms sponsors
An open API service aggregating public data about GitHub Sponsors.
An open API service aggregating public data about GitHub Sponsors.
Probabilistic programming in Rust and Julia
Funding Links: https://github.com/sponsors/cscherrer
Hi, I'm Chad. I develop tools for probabilistic programming in Julia
Soss.jl (my main project) is a probabilistic programming language. A Soss model is represented in terms of an AST (abstract syntax tree, effectively "the model is the code"). This allows for static analysis and manipulation, and generation of arbitrary user-extensible back-ends.
MeasureTheory.jl is a library for expressing and manipulating measures, a generalization of a probability distribution. Much of the functionality of Soss is "pushed down" to this library. This makes some of the capabilities of Soss available for use independently of Soss, and lets Soss focus on combining and manipulating measures. A Soss model is then just "a measure with some superpowers".
SampleChains.jl gives an abstraction for representing Monte Carlo samples, with various flavors of MCMC as a special case.
TupleVectors.jl Forms the core of some SampleChains implementations (at this writing, SampleChainsDynamicHMC.jl. Compared to StructArrays.jl, TupleVectors focuses more on nested named tuples, and uses some metaprogramming tricks for acceleration and expressiveness (see for example the @with macro)
NestedTuples.jl is a library for working with, well, nested tuples, but also nested named tuples. The core of the @with macro also lives here. TupleVectors builds on this library.
BayesianLinearRegression.jl fits Bayesian linear models with a Gaussian prior on the weights, using a marginal likelihood approach. The priors for the noise and the mean can be tuned (using marginal likelihood) or fixed, and regressors can be marked "active" or not, allowing for sparse regression. The resulting model fit includes uncertainty of parameter estimates.
SymbolicCodegen.jl makes it easy to generate efficient code from a Symbolic value from SymbolicUtils.jl.
MaskArrays.jl gives a way to represent an array with missing values that makes imputation very efficient.
If you'd like to see these tools develop further, please consider supporting this work!
Github: https://github.com/cscherrer
Twitter: https://twitter.com/ChadScherrer
LinkedIn: https://www.linkedin.com/in/chadscherrer/
Probabilistic programming via source rewriting
Language: Julia - Stars: 413KeywordCalls makes it easy to define a method taking a NamedTuple considered as a an unordered collection of bound variables. The required redirection is done at compile time, so there's no runtime…
Language: Julia - Stars: 24