Science Score: 28.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
○codemeta.json file
-
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
2 of 3 committers (66.7%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.8%) to scientific vocabulary
Repository
http://proceedings.mlr.press/v89/requeima19a.html
Basic Info
Statistics
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
GPARs
GPARs.jl is a rudimentary implementation of the Gaussian Process Autoregressive Regressor (GPAR), introduced in our AISTATS paper. See CITATION.bib for an appropriate bibtex citation.
We also maintain a Python version of this package -- this is much more fully featured, and we recommend that you use this implementation if you require the full collection of techniques introduced in that paper.
Basic Usage
```julia using AbstractGPs using GPARs using Random
Build a GPAR from a collection of GPs. For more info on how to specify particular
kernels and their parameters, please see AbstractGPs.jl or
Stheno.jl
You should think of this as a vector-valued regressor.
f = GPAR([GP(SEKernel()) for _ in 1:3])
Specify inputs. ColVecs says "interpret this matrix as a vector of column-vecrors".
Inputs are 2 dimensional, and there are 10 of them. This means that the pth GP in f
will receive (2 + (p-1))-dimensional inputs, of which the first 2 dimensions comprise
x, and the remaining the outputs of the first p-1 GPs in f.
x = ColVecs(randn(2, 10))
Specify noise variance for each output.
Σs = rand(3) .+ 0.1
Generate samples from the regressor at inputs x under observation noise Σs.
You'll see that these are ColVecs of length N, each element of which is a length 3
vector.
y = rand(MersenneTwister(123456), f(x, Σs)) y.X # this produces the matrix underlying the observations.
Compute the log marginal likelihood of the observations under the model.
logpdf(f(x, Σs), y)
Generate a new GPAR that is conditioned on these observations. This is just another
GPAR object (in the simplest case, GPARs are closed under conditioning).
f_post = posterior(f(x, Σs), y)
Since f_post is just another GPAR, we can use it to generate posterior samples
and to compute log posterior predictive probabilities in the same way as the prior.
xpost = ColVecs(randn(2, 15)) rng = MersenneTwister(123456) ypost = rand(rng, fpost(x, Σs)) logpdf(fpost(x, Σs), y_post) ```
Using this functionality, you have everything you need to do learning using standard off-the-shelf functionality (Zygote.jl to get gradients, Optim.jl to get optimisers such as (L-)BFGS, and ParameterHandling.jl to make dealing with large numbers of model parameters more straightforward. See the examples in Stheno.jl's docs for inspiration.
Owner
- Name: Will Tebbutt
- Login: willtebbutt
- Kind: user
- Repositories: 8
- Profile: https://github.com/willtebbutt
Citation (CITATION.md)
@InProceedings{pmlr-v89-requeima19a,
title = {The Gaussian Process Autoregressive Regression Model (GPAR)},
author = {Requeima, James and Tebbutt, William and Bruinsma, Wessel and Turner, Richard E.},
booktitle = {Proceedings of Machine Learning Research},
pages = {1860--1869},
year = {2019},
editor = {Kamalika Chaudhuri and Masashi Sugiyama},
volume = {89},
series = {Proceedings of Machine Learning Research},
address = {},
month = {16--18 Apr},
publisher = {PMLR},
pdf = {http://proceedings.mlr.press/v89/requeima19a/requeima19a.pdf},
url = {http://proceedings.mlr.press/v89/requeima19a.html},
abstract = {Multi-output regression models must exploit dependencies between outputs to maximise predictive performance. The application of Gaussian processes (GPs) to this setting typically yields models that are computationally demanding and have limited representational power. We present the Gaussian Process Autoregressive Regression (GPAR) model, a scalable multi-output GP model that is able to capture nonlinear, possibly input-varying, dependencies between outputs in a simple and tractable way: the product rule is used to decompose the joint distribution over the outputs into a set of conditionals, each of which is modelled by a standard GP. GPAR’s efficacy is demonstrated on a variety of synthetic and real-world problems, outperforming existing GP models and achieving state-of-the-art performance on established benchmarks.}
}
GitHub Events
Total
Last Year
Committers
Last synced: over 3 years ago
All Time
- Total Commits: 25
- Total Committers: 3
- Avg Commits per committer: 8.333
- Development Distribution Score (DDS): 0.2
Top Committers
| Name | Commits | |
|---|---|---|
| WT | w****1@m****k | 20 |
| willtebbutt | w****3@c****k | 3 |
| github-actions[bot] | 4****]@u****m | 2 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: about 1 year ago
All Time
- Total issues: 1
- Total pull requests: 9
- Average time to close issues: less than a minute
- Average time to close pull requests: 1 day
- Total issue authors: 1
- Total pull request authors: 2
- Average comments per issue: 5.0
- Average comments per pull request: 0.44
- Merged pull requests: 6
- Bot issues: 0
- Bot pull requests: 5
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- JuliaTagBot (1)
Pull Request Authors
- github-actions[bot] (5)
- willtebbutt (4)