openModeller
Version 1.5.0
|
#include <Algorithm.hh>
Public Types | |
typedef std::map< icstring, std::string > | ParamSetType |
Public Member Functions | |
AlgorithmImpl (AlgMetadata const *metadata) | |
virtual | ~AlgorithmImpl () |
void | setParameters (int nparam, AlgParameter const *param) |
void | setParameters (const ParamSetType &) |
std::string const | getID () const |
AlgMetadata const * | getMetadata () const |
AlgorithmPtr | getFreshCopy () |
virtual int | supportsModelProjection () const |
Model | createModel (const SamplerPtr &samp, CallbackWrapper *func=0) |
void | setSampler (const SamplerPtr &samp) |
virtual int | initialize ()=0 |
virtual int | iterate () |
virtual int | finalize () |
virtual int | done () const |
virtual int | getConvergence (Scalar *const val) const |
virtual float | getProgress () const |
virtual int | needNormalization () |
Normalizer * | getNormalizer () const |
void | setNormalization (const SamplerPtr &samp) const |
void | setNormalization (const EnvironmentPtr &env) const |
virtual Scalar | getValue (const Sample &x) const =0 |
virtual Model | getModel () const |
ConfigurationPtr | getConfiguration () const |
void | setConfiguration (const ConstConfigurationPtr &) |
Public Member Functions inherited from Configurable | |
virtual | ~Configurable () |
Protected Member Functions | |
virtual void | _getConfiguration (ConfigurationPtr &) const |
virtual void | _setConfiguration (const ConstConfigurationPtr &) |
int | dimDomain () |
int | getParameter (std::string const &name, std::string *value) |
int | getParameter (std::string const &name, double *value) |
int | getParameter (std::string const &name, float *value) |
int | getParameter (std::string const &name, int *value) |
Protected Attributes | |
SamplerPtr | _samp |
Normalizer * | _normalizerPtr |
ParamSetType | _param |
Private Types | |
typedef ParamSetType::value_type | ParamSetValueType |
Private Attributes | |
AlgMetadata const * | _metadata |
Friends | |
class | ReferenceCountedPointer< AlgorithmImpl > |
class | ReferenceCountedPointer< const AlgorithmImpl > |
Additional Inherited Members | |
Private Member Functions inherited from ReferenceCountedObject | |
ReferenceCountedObject () | |
virtual | ~ReferenceCountedObject ()=0 |
Base class for all distribution modeling algorithms. Provide methods to all derived classes so that they can do data sampling and access the environmental layers to build the model.
Definition at line 76 of file Algorithm.hh.
typedef std::map< icstring, std::string > AlgorithmImpl::ParamSetType |
Definition at line 84 of file Algorithm.hh.
|
private |
Definition at line 257 of file Algorithm.hh.
|
explicit |
Definition at line 54 of file Algorithm.cpp.
References Log::debug(), and Log::instance().
|
virtual |
Definition at line 70 of file Algorithm.cpp.
References _normalizerPtr, Log::debug(), and Log::instance().
|
inlineprotectedvirtual |
Reimplemented in Csm, AquaMaps, Garp, AbstractBestSubsets, BestSubsets, EnvironmentalDistance, NNAlgorithm, GarpAlgorithm, RfAlgorithm, EnvelopeScore, ConsensusAlgorithm, SvmAlgorithm, NicheMosaic, Bioclim, DistanceToAverage, MinimumDistance, and VirtualNicheGenerator.
Definition at line 199 of file Algorithm.hh.
Referenced by getConfiguration().
|
inlineprotectedvirtual |
Reimplemented in Csm, AquaMaps, Garp, AbstractBestSubsets, BestSubsets, EnvironmentalDistance, NNAlgorithm, GarpAlgorithm, RfAlgorithm, ConsensusAlgorithm, EnvelopeScore, SvmAlgorithm, NicheMosaic, Bioclim, DistanceToAverage, MinimumDistance, and VirtualNicheGenerator.
Definition at line 200 of file Algorithm.hh.
Referenced by setConfiguration().
Model AlgorithmImpl::createModel | ( | const SamplerPtr & | samp, |
CallbackWrapper * | func = 0 |
||
) |
Definition at line 362 of file Algorithm.cpp.
References _normalizerPtr, _samp, CallbackWrapper::abortionRequested(), Normalizer::computeNormalization(), done(), error, Log::error(), finalize(), getModel(), getProgress(), Log::info(), initialize(), Log::instance(), iterate(), needNormalization(), CallbackWrapper::notifyModelCreationProgress(), setNormalization(), and setSampler().
|
inlineprotected |
All protected methods should not be called before initialized(). This is because the sampler object _samp is not initialized in the constructor and the algorithm's parameters were not set yet.Dimension of problem domain: number of independent variables (climatic + soil) added to the number of dependent variables (occurrence prediction).
Definition at line 212 of file Algorithm.hh.
|
inlinevirtual |
Return != 0 if algorithm finished.
Reimplemented in Csm, AquaMaps, Garp, AbstractBestSubsets, BestSubsets, NNAlgorithm, NicheMosaic, RfAlgorithm, EnvelopeScore, ConsensusAlgorithm, Bioclim, DistanceToAverage, MinimumDistance, SvmAlgorithm, GarpAlgorithm, VirtualNicheGenerator, and EnvironmentalDistance.
Definition at line 140 of file Algorithm.hh.
Referenced by createModel().
|
inlinevirtual |
Called after the training phase has finished, ie after done() returned not zero.
Definition at line 137 of file Algorithm.hh.
Referenced by createModel().
|
virtual |
Implements Configurable.
Definition at line 86 of file Algorithm.cpp.
References _getConfiguration(), _metadata, _normalizerPtr, _param, Configurable::getConfiguration(), AlgMetadata::id, and AlgMetadata::version.
|
inlinevirtual |
Returns the algorithm's convergence value at the moment
Reimplemented in Csm, AquaMaps, Garp, AbstractBestSubsets, BestSubsets, RfAlgorithm, EnvelopeScore, ConsensusAlgorithm, Bioclim, SvmAlgorithm, GarpAlgorithm, and VirtualNicheGenerator.
Definition at line 143 of file Algorithm.hh.
AlgorithmPtr AlgorithmImpl::getFreshCopy | ( | ) |
Returns a copy of this algorithm in the same state as it was before being initialized (ie., no model, same parameters).
Definition at line 254 of file Algorithm.cpp.
References _metadata, _param, Log::error(), AlgMetadata::id, Log::instance(), and AlgorithmFactory::newAlgorithm().
|
inline |
Definition at line 100 of file Algorithm.hh.
|
inline |
Definition at line 102 of file Algorithm.hh.
|
virtual |
Definition at line 536 of file Algorithm.cpp.
Referenced by createModel().
Normalizer * AlgorithmImpl::getNormalizer | ( | ) | const |
Returns the normalizer used by the algorithm. This method was created for super algorithms like "best subsets", so that the super algorithm can retrieve and use the same normalizer needed by the sub algorithm.
Definition at line 338 of file Algorithm.cpp.
References _normalizerPtr, and Normalizer::getCopy().
Referenced by ConsensusAlgorithm::initialize().
|
protected |
Returns an algorithm parameter of string type.
name | Parameters name. |
value | Filled with parameter's value. |
Referenced by AquaMaps::_getAndCheckParameter(), ConsensusAlgorithm::_setConfiguration(), EnvironmentalDistance::_setConfiguration(), Garp::_setConfiguration(), EnvironmentalDistance::initialize(), VirtualNicheGenerator::initialize(), GarpAlgorithm::initialize(), MinimumDistance::initialize(), DistanceToAverage::initialize(), SvmAlgorithm::initialize(), Bioclim::initialize(), ConsensusAlgorithm::initialize(), RfAlgorithm::initialize(), CsmBS::initialize(), NNAlgorithm::initialize(), BestSubsets::initialize(), NicheMosaic::initialize(), Garp::initialize(), AbstractBestSubsets::initialize(), AquaMaps::initialize(), SvmAlgorithm::needNormalization(), AbstractBestSubsets::needNormalization(), DgGarpBestSubsets::transferParametersToAlgorithm(), and GarpBestSubsets::transferParametersToAlgorithm().
|
protected |
Returns an algorithm parameter of floating point type.
name | Parameters name. |
value | Filled with parameter's value. |
|
protected |
|
protected |
Returns an algorithm parameter of int point type.
name | Parameters name. |
value | Filled with parameter's value. |
|
inlinevirtual |
Returns progress so far (between 0.0 and 1.0)
Reimplemented in AquaMaps, Garp, AbstractBestSubsets, BestSubsets, NicheMosaic, NNAlgorithm, RfAlgorithm, ConsensusAlgorithm, and GarpAlgorithm.
Definition at line 146 of file Algorithm.hh.
Referenced by createModel().
The algorithm must return the occurrence probability at the given environment conditions.
x | Environmental conditions. |
Implemented in Csm, AquaMaps, Garp, AbstractBestSubsets, BestSubsets, NNAlgorithm, NicheMosaic, RfAlgorithm, EnvelopeScore, ConsensusAlgorithm, Bioclim, DistanceToAverage, MinimumDistance, SvmAlgorithm, GarpAlgorithm, VirtualNicheGenerator, and EnvironmentalDistance.
|
pure virtual |
Initiate a new training.
Implemented in Csm, AquaMaps, AbstractBestSubsets, Garp, NicheMosaic, BestSubsets, NNAlgorithm, CsmBS, EnvelopeScore, RfAlgorithm, ConsensusAlgorithm, Bioclim, DistanceToAverage, MinimumDistance, SvmAlgorithm, GarpAlgorithm, VirtualNicheGenerator, and EnvironmentalDistance.
Referenced by createModel().
|
inlinevirtual |
One step further on the training. Return 0 if something wrong happened.
Reimplemented in Csm, AquaMaps, Garp, AbstractBestSubsets, BestSubsets, NicheMosaic, NNAlgorithm, EnvelopeScore, RfAlgorithm, ConsensusAlgorithm, Bioclim, DistanceToAverage, MinimumDistance, SvmAlgorithm, GarpAlgorithm, and VirtualNicheGenerator.
Definition at line 132 of file Algorithm.hh.
Referenced by createModel().
|
inlinevirtual |
The algorithm should return != 0 if it needs normalization of environmental variables (non categorical ones).
Reimplemented in AbstractBestSubsets, NNAlgorithm, RfAlgorithm, ConsensusAlgorithm, and SvmAlgorithm.
Definition at line 155 of file Algorithm.hh.
Referenced by createModel().
|
virtual |
Implements Configurable.
Definition at line 121 of file Algorithm.cpp.
References _normalizerPtr, _param, _setConfiguration(), Log::error(), Log::instance(), Configurable::setConfiguration(), and UNUSED.
void AlgorithmImpl::setNormalization | ( | const SamplerPtr & | samp | ) | const |
Normalize the given environment.
samp | Sampler to normalize. |
Definition at line 350 of file Algorithm.cpp.
References _normalizerPtr.
Referenced by createModel(), SvmAlgorithm::initialize(), NNAlgorithm::initialize(), and AbstractBestSubsets::needNormalization().
void AlgorithmImpl::setNormalization | ( | const EnvironmentPtr & | env | ) | const |
Normalize the given environment.
env | Environment to normalize. |
Definition at line 356 of file Algorithm.cpp.
References _normalizerPtr.
void AlgorithmImpl::setParameters | ( | int | nparam, |
AlgParameter const * | param | ||
) |
Configure the algorithm's parameters.
nparam | Number of parameters. |
param | Vector with all parameters. The address 'param' points to must exists while this object is used. |
Definition at line 229 of file Algorithm.cpp.
References _param, AlgParameter::id(), and AlgParameter::value().
void AlgorithmImpl::setParameters | ( | const ParamSetType & | params | ) |
Definition at line 245 of file Algorithm.cpp.
References _param.
void AlgorithmImpl::setSampler | ( | const SamplerPtr & | samp | ) |
Set the sampler object. Need to be called before start the algorithm initialization or iteration.
Definition at line 221 of file Algorithm.cpp.
References _samp.
Referenced by createModel().
|
inlinevirtual |
If algorithm returns 0 then it does not support projection of models to other environmental data layers. By default all algorithms support that feature.
Definition at line 113 of file Algorithm.hh.
|
friend |
Definition at line 79 of file Algorithm.hh.
|
friend |
Definition at line 80 of file Algorithm.hh.
|
private |
Definition at line 253 of file Algorithm.hh.
Referenced by getConfiguration(), and getFreshCopy().
|
protected |
Definition at line 247 of file Algorithm.hh.
Referenced by createModel(), DistanceToAverage::DistanceToAverage(), EnvironmentalDistance::EnvironmentalDistance(), Garp::Garp(), GarpAlgorithm::GarpAlgorithm(), GarpBestSubsets::GarpBestSubsets(), getConfiguration(), getNormalizer(), SvmAlgorithm::initialize(), NNAlgorithm::initialize(), MinimumDistance::MinimumDistance(), SvmAlgorithm::needNormalization(), AbstractBestSubsets::needNormalization(), NNAlgorithm::NNAlgorithm(), setConfiguration(), setNormalization(), SvmAlgorithm::SvmAlgorithm(), and ~AlgorithmImpl().
|
protected |
Definition at line 249 of file Algorithm.hh.
Referenced by getConfiguration(), getFreshCopy(), AbstractBestSubsets::iterate(), setConfiguration(), and setParameters().
|
protected |
Definition at line 245 of file Algorithm.hh.
Referenced by NicheMosaic::cleanOccurrences(), Garp::colonize(), createModel(), Garp::crossover(), EnvironmentalDistance::initialize(), VirtualNicheGenerator::initialize(), GarpAlgorithm::initialize(), Bioclim::initialize(), MinimumDistance::initialize(), SvmAlgorithm::initialize(), DistanceToAverage::initialize(), ConsensusAlgorithm::initialize(), RfAlgorithm::initialize(), EnvelopeScore::initialize(), NNAlgorithm::initialize(), Garp::initialize(), NicheMosaic::initialize(), AquaMaps::initialize(), Csm::initialize(), VirtualNicheGenerator::iterate(), ConsensusAlgorithm::iterate(), BestSubsets::iterate(), AbstractBestSubsets::iterate(), AquaMaps::iterate(), SvmAlgorithm::needNormalization(), NNAlgorithm::needNormalization(), AbstractBestSubsets::needNormalization(), Csm::SamplerToMatrix(), and setSampler().