pints-team / pints

Probabilistic Inference on Noisy Time Series
http://pints.readthedocs.io
Other
223 stars 33 forks source link

Formalised "procedures" in Pints? #591

Closed MichaelClerx closed 4 years ago

MichaelClerx commented 5 years ago

When finding parameters for ion channel models, we've generally been using the following approach:

repeat 25 times:
  x = sample from (a meaningful!) prior
  xbest, fbest = optimise(starting at x)
check if ~10 best scores are very similar (should really look at param distance too)
return xbest for best fbest

There are several other things you could do, all based on some experience with a particular problem / solver subset. In the past I've also used two-step global/local approaches where I followed a (very long) PSO search with a (very fast) local Nelder-Mean search (PSO finds the hill, Nelder-Mead walks up it)

This kind of thing is really easy to implement using Pints. Yay!

But should we have some way to formalise these procedures?

So we'd have

  1. Algorithms: Have names, Typically come with proofs (unless evolutionary...), Can be hybrids of other algorithms (see #572), Typically focus on speed
  2. Procedures: Combinations/repeats of algorithms, applied in a specific way, Heuristics, More problem specific? Include some focus on robustness, checking of results

Do we think there's a place in Pints for this kind of thing?

MichaelClerx commented 4 years ago

No takers, so closing!