NestedSolver = class NestedSolver(NestedSampler) |
|
NestedSolver(problem, distribution=None, keep=None, ensemble=100, discard=1,
seed=80409, rate=1.0, engines=None, maxsize=None, threads=False,
verbose=1)
NestedSolver is an extension of NestedSampler. It uses the
likelihood-climbing technique to find a solution in an ordering
problem. The negative value of the costfunction, commonly defined
in ordering problems, is maximised. In this sense the costfunction
is acting as the logLikelihood.
For more information about this technique see NestedSampler.
For the random walk of the parameters 4 so-called engines are written.
By default only he first is switched on.
MoveEngine : insert a snippet of parameters at another location
ReverseEngine : reverse the order of a snippet of parameters
ShuffleEngine : shuffle part of the parameter list
SwitchEngine : switch two elements
LoopEngine : uncross a crossing loop
NearEngine : find the nearest location and go there first.
The last 2 engines are not random. They are mostly (?) taking steps
uphill. Mixing them with other engines maintain detailed balance in
an overall sense.
Attributes
----------
xdata : array_like
array of independent input values
model : Model
the model function to be fitted
ydata : array_like
array of dependent (to be fitted) data
weights : array_like (None)
weights pertaining to ydata
distribution : ErrorDistribution
to calculate the loglikelihood
ensemble : int (100)
number of walkers
discard : int (1)
number of walkers to be replaced each generation
rng : RandomState
random number generator
seed : int (80409)
seed of rng
rate : float (1.0)
speed of exploration
maxsize : None or int
maximum size of the resulting sample list (None : no limit)
end : float (2.0)
stopping criterion
verbose : int
level of blabbering
walkers : SampleList
ensemble of Samples that explore the likelihood space
samples : SampleList
Samples resulting from the exploration
engines : list of Engine
Engine that move the walkers around within the given constraint: logL > lowLogL
initialEngine : Engine
Engine that distributes the walkers over the available space
restart : StopStart (TBW)
write intermediate results to (optionally) start from.
Author Do Kester. |
|
- Method resolution order:
- NestedSolver
- NestedSampler
- builtins.object
Constructor:
- NestedSolver( problem, distribution=None, keep=None, ensemble=100, discard=1,
seed=80409, rate=1.0, engines=None, maxsize=None, threads=False,
verbose=1)
- Create a new class, providing inputs and model.
Parameters
----------
problem : OrderProblem
Problem with integer parameters
keep : None or dict of {int:float}
None : none of the model parameters are kept fixed.
Dictionary of indices (int) to be kept at a fixed value (float).
Hyperparameters follow model parameters.
The values will override those at initialization.
They are used in this instantiation, unless overwritten at the call to sample()
distribution : None or String or ErrorDistribution
None : DistanceCostFunction is chosen.
"distance" : `DistanceCostFunction` no hyperpar
errdis : A class inheriting from ErrorDistribution
which implements logLikelihood
When the hyperpar(s) are not to be kept fixed, they need `Prior` and maybe limits.
ensemble : int (100)
number of walkers
discard : int (1)
number of walkers to be replaced each generation
seed : int (80409)
seed of rng
rate : float (1.0)
speed of exploration
engines : None or (list of) string or (list of) Engine
to randomly move the walkers around, within the likelihood bound.
"move" : insert a snippet of parameters at another location
"reverse" : reverse the order of a snippet of parameters
"shuffle" : shuffle part of the parameter list
"switch" : switch two elements
"loop" : find two paths that cross, then uncross them
"near" : find the nearest location and go there first.
None : take default [all of above].
engine : a class inheriting from Engine. At least implementing
execute( walker, lowLhood )
maxsize : None or int
maximum size of the resulting sample list (None : no limit)
threads : bool (False)
Use Threads to distribute the diffusion of discarded samples over the available cores.
verbose : int (1)
0 : silent
1 : basic information
2 : more about every 100th iteration
3 : more about every iteration
Methods defined here:
- initWalkers( ensemble, allpars, fitIndex, startdict=None )
- Initialize the walkers at random values of parameters and scale
Parameters
----------
ensemble : int
length od the walkers list
allpars : array_like
array of parameters
fitIndex : array_like
indices of allpars to be fitted
startdict : dictionary of { str : Engine }
connecting a name to a StartEngine
- setEngines( engines=None, enginedict=None )
- initialize the engines.
Parameters
----------
engines : list of string
list of engine names
enginedict : dictionary of { str : Engine }
connecting names to Engines
- setErrorDistribution( name=None, scale=1.0, power=2.0)
- Set the error distribution for calculating the likelihood.
Parameters
----------
name : string
name of distribution
scale : float
fixed scale of distribution
power : float
fixed power of distribution
- solve( keep=None, plot=False )
- Solve an order problem.
Return the last sample, representing the best solution.
The more sammples (with solutions) can be found in the sample list.
Parameters
----------
keep : None or dict of {int:float}
Dictionary of indices (int) to be kept at a fixed value (float)
Hyperparameters follow model parameters
The values will override those at initialization.
They are only used in this call of fit.
plot : bool
Show a plot of the results
Methods inherited from NestedSampler:
- calculateUnitRange()
- copyWalker( worst )
- doIterPlot( plot )
- doLastPlot( plot )
- getMaxIter()
- initReport( keep=None, plot=False )
- initSample( ensemble=None, keep=None )
- iterReport( kw, tail, plot=False )
- lastReport( kw, plot=False )
- makeFitlist( keep=None )
- optionalRestart()
- optionalSave()
- plotData( plot=0)
- plotResult( walker, iter, plot=0)
- report()
- sample( keep=None, plot=False )
- setProblem( name, model=None, xdata=None, ydata=None, weights=None, accuracy=None )
- sortLogL( walkers )
- updateEvidence( worst )
- updateWalkers( explorer, worst )
- walkerLogL( w )
|
|