Kernel wishlist: categorical variants and other useful kernels
Nobody has claimed this yet.
- Dominant language
- Jupyter Notebook
- Stars
- 8
- Forks
- 4
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 4
Description
Collecting ideas for new kernels. ptgp currently ships:
Stationary: ExpQuad, Matern52, Matern32, Matern12
Categorical: Overlap, LowRankCategorical
Non-stationary: RandomWalk, Gibbs, WarpedInput
Categorical kernels
There's a lot of room to grow here. Some ideas:
- FullCategorical — a full-rank PSD level covariance matrix, parameterized via
pm.LKJCholeskyCovor a user-supplied PSD matrix. Proper LKJ prior on the level correlation structure. - LowRankCategorical identifiability fixes — the current
eta**2 * LowRankCategorical(W, kappa)has a scalar non-identifiability (etaandW/kappacan trade scale). Diagonal normalization (force unit diagonal on B, delegate all amplitude toeta) is the intended structural fix. - GroupedCategorical — sum or product of per-column ICM kernels for rows with multiple categorical features (e.g. country, device type, experiment arm). Mostly sugar over composing
LowRankCategoricalinstances, but the parameter setup gets repetitive without it. - HierarchicalCategorical — for nested categorical columns (country > region > city). Covariance is a sum where each level's contribution is gated by shared ancestry. Sharing across related groups regularizes sparse leaves.
Continuous kernels
What other continuous kernels would be useful? Some starting points:
- Periodic / locally periodic
- Spectral mixture
- Polynomial
- Linear
- Changepoint / switching kernels
- Rational quadratic
Open questions
- What other kernels are people using that would be worth adding?
- Are there kernels that would be useful but are tricky to implement or experiment with?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or implementation entry points are named. Start by narrowing the wishlist to one proposed categorical or continuous kernel, then review the existing kernel implementations and determine the expected parameterization and validation. Done should mean a specific kernel is selected with an agreed implementation scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100