openModeller
Version 1.4.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 &) |
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 > |
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.
typedef ParamSetType::value_type AlgorithmImpl::ParamSetValueType [private] |
Definition at line 257 of file Algorithm.hh.
AlgorithmImpl::AlgorithmImpl | ( | AlgMetadata const * | metadata | ) | [explicit] |
Definition at line 54 of file Algorithm.cpp.
References Log::debug(), and Log::instance().
AlgorithmImpl::~AlgorithmImpl | ( | ) | [virtual] |
Definition at line 70 of file Algorithm.cpp.
References _normalizerPtr, Log::debug(), and Log::instance().
virtual void AlgorithmImpl::_getConfiguration | ( | ConfigurationPtr & | ) | const [inline, protected, virtual] |
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().
virtual void AlgorithmImpl::_setConfiguration | ( | const ConstConfigurationPtr & | ) | [inline, protected, virtual] |
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().
int AlgorithmImpl::dimDomain | ( | ) | [inline, protected] |
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.
virtual int AlgorithmImpl::done | ( | ) | const [inline, virtual] |
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().
virtual int AlgorithmImpl::finalize | ( | ) | [inline, virtual] |
Called after the training phase has finished, ie after done() returned not zero.
Definition at line 137 of file Algorithm.hh.
Referenced by createModel().
ConfigurationPtr AlgorithmImpl::getConfiguration | ( | ) | const [virtual] |
Implements Configurable.
Definition at line 86 of file Algorithm.cpp.
References _getConfiguration(), _metadata, _normalizerPtr, _param, Configurable::getConfiguration(), AlgMetadata::id, and AlgMetadata::version.
virtual int AlgorithmImpl::getConvergence | ( | Scalar *const | val | ) | const [inline, virtual] |
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.
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().
std::string const AlgorithmImpl::getID | ( | ) | const [inline] |
Definition at line 100 of file Algorithm.hh.
AlgMetadata const* AlgorithmImpl::getMetadata | ( | ) | const [inline] |
Definition at line 102 of file Algorithm.hh.
Model AlgorithmImpl::getModel | ( | ) | const [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().
int AlgorithmImpl::getParameter | ( | std::string const & | name, |
std::string * | value | ||
) | [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().
int AlgorithmImpl::getParameter | ( | std::string const & | name, |
double * | value | ||
) | [protected] |
Returns an algorithm parameter of floating point type.
name | Parameters name. |
value | Filled with parameter's value. |
int AlgorithmImpl::getParameter | ( | std::string const & | name, |
float * | value | ||
) | [protected] |
int AlgorithmImpl::getParameter | ( | std::string const & | name, |
int * | value | ||
) | [protected] |
Returns an algorithm parameter of int point type.
name | Parameters name. |
value | Filled with parameter's value. |
virtual float AlgorithmImpl::getProgress | ( | ) | const [inline, virtual] |
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().
virtual Scalar AlgorithmImpl::getValue | ( | const Sample & | x | ) | const [pure virtual] |
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.
virtual int AlgorithmImpl::initialize | ( | ) | [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().
virtual int AlgorithmImpl::iterate | ( | ) | [inline, virtual] |
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().
virtual int AlgorithmImpl::needNormalization | ( | ) | [inline, virtual] |
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().
void AlgorithmImpl::setConfiguration | ( | const ConstConfigurationPtr & | config | ) | [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().
virtual int AlgorithmImpl::supportsModelProjection | ( | ) | const [inline, virtual] |
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 class ReferenceCountedPointer< AlgorithmImpl > [friend] |
Definition at line 79 of file Algorithm.hh.
friend class ReferenceCountedPointer< const AlgorithmImpl > [friend] |
Definition at line 80 of file Algorithm.hh.
AlgMetadata const* AlgorithmImpl::_metadata [private] |
Definition at line 253 of file Algorithm.hh.
Referenced by getConfiguration(), and getFreshCopy().
Normalizer* AlgorithmImpl::_normalizerPtr [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().
ParamSetType AlgorithmImpl::_param [protected] |
Definition at line 249 of file Algorithm.hh.
Referenced by getConfiguration(), getFreshCopy(), AbstractBestSubsets::iterate(), setConfiguration(), and setParameters().
SamplerPtr AlgorithmImpl::_samp [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().