All the "pest" named examples have information about that capability. I'm not aware of any full tutorial on it, though, and I realize that it's current setup is complex. It might help if you can explain more about your model and your needs.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
We are trying to implement a SEIR model using PyDSTools. There are 8 parameters that need to be optimized over 9 DEs. Using a modified version of the joe_pest example, I am able to get up to 4 of these parameters optimized at a time (just adding to the est_parnames array), but this took about 30 minutes (which is not very useful, and is apparently exponentially increasing in processing time with each additional parameter).
My next question is, is there a way to set bounds of optimization for each parameter? I imagine this should significantly decrease processing time.
Best,
Robert
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi, PyDSTool's optimization tools are experimental and more suitable
for initial explorations than hardcore usage. However, the potential
nonlinearities of models might be sufficient reason to cause huge
slowdown in convergence. 8 free params is actually quite a few for
optimization of nonlinear models. I don't know what your situation is
or what algorithm you're trying to use, but you might like to
visualize the objective function and understand if you're making the
situation practicable.
As for bounds, that's a classically difficult thing to achieve with
standard algorithms. The most common way is a hack that adds specially
designed super-steep cost functions overlaid at the ends of your
bounds. It doesn't guarantee anything though, as your algorithm may
still just push up against the bounds if the problem isn't set up well
to start with.
We are trying to implement a SEIR model using PyDSTools. There are 8
parameters that need to be optimized over 9 DEs. Using a modified version of
the joe_pest example, I am able to get up to 4 of these parameters optimized
at a time (just adding to the est_parnames array), but this took about 30
minutes (which is not very useful, and is apparently exponentially
increasing in processing time with each additional parameter).
My next question is, is there a way to set bounds of optimization for each
parameter? I imagine this should significantly decrease processing time.
I'm looking for a good, simple example using PyDSTool to optimize parameter(s) in a set of differential equations.
So far I've been looking at joe_pest.py example, but I'm not sure this is what I'm looking for.
Any additional information would be appreciated, thank you in advance for the help.
All the "pest" named examples have information about that capability. I'm not aware of any full tutorial on it, though, and I realize that it's current setup is complex. It might help if you can explain more about your model and your needs.
Hello Dr. Clewley,
Thank you for getting back to me about this!
We are trying to implement a SEIR model using PyDSTools. There are 8 parameters that need to be optimized over 9 DEs. Using a modified version of the joe_pest example, I am able to get up to 4 of these parameters optimized at a time (just adding to the est_parnames array), but this took about 30 minutes (which is not very useful, and is apparently exponentially increasing in processing time with each additional parameter).
My next question is, is there a way to set bounds of optimization for each parameter? I imagine this should significantly decrease processing time.
Best,
Robert
Hi, PyDSTool's optimization tools are experimental and more suitable
for initial explorations than hardcore usage. However, the potential
nonlinearities of models might be sufficient reason to cause huge
slowdown in convergence. 8 free params is actually quite a few for
optimization of nonlinear models. I don't know what your situation is
or what algorithm you're trying to use, but you might like to
visualize the objective function and understand if you're making the
situation practicable.
As for bounds, that's a classically difficult thing to achieve with
standard algorithms. The most common way is a hack that adds specially
designed super-steep cost functions overlaid at the ends of your
bounds. It doesn't guarantee anything though, as your algorithm may
still just push up against the bounds if the problem isn't set up well
to start with.
On Wed, Nov 23, 2016 at 12:50 PM, Robert Player playerra@users.sf.net wrote:
Any pointers/tips on where to start with the hack you mention?
Thanks again for the feedback.