45 #define SLEEP(secs) Sleep(secs * 1000)
48 #define SLEEP(secs) sleep(secs);
55 printf(
"%s\n", msg.c_str());
56 for (
int i = 0; i < numOfRuns; i++)
57 printf(
"%4d] om=%5.3f comm=%5.3f (id=%d)\n", i,
58 runs[i]->getOmission(),
167 Log::instance()->
warn(
"Multithreading is still experimental. When max threads is greater than 1, depending on software and hardware configuration this application may crash or you may see lots of raster IO warnings. In these cases, we recommend you to set this parameter to 1.\n");
172 Log::instance()->
warn(
"The specified training proportion value is less than or equals 1. Please note that there was a change in the valid range for this parameter from 0-1 to 0-100. Small values may result in zero presence points being used to train the model.\n");
200 static int iterations = 0;
231 Log::instance()->
debug(
"Presences: orig=%d, train=%d, test=%d\n",
_samp->numPresence(), train->numPresence(), test->numPresence() );
232 Log::instance()->
debug(
"Absences: orig=%d, train=%d, test=%d\n",
_samp->numAbsence(), train->numAbsence(), test->numAbsence() );
329 sortRuns(runList, _numFinishedRuns, 0);
331 printListOfRuns(
"Finished Runs by Omission:", runList, _numFinishedRuns);
336 printListOfRuns(
"Best Omission Runs by Commission:", runList, _numFinishedRuns);
340 int firstRun = (int)ceil( (
double)medianRun - (double)
_numBestRuns / 2.0 );
345 {
_bestRun[i] = runList[i + firstRun]; }
349 printf(
"Median: %d First: %d\n", medianRun, firstRun);
361 int nelements,
int errorType)
366 Log::instance()->
info(
"Sorting list %d of %d elements by index %d.\n", runList, nelements, errorType);
370 for (i = 0; i < nelements - 1; i++)
372 for (j = 0; j < nelements - i - 1; j++)
375 runJ1 = runList[j + 1];
381 runList[j + 1] = runJ0;
405 float progByTotalRuns = 0.0;
406 float progByHardOmission = 0.0;
408 float avgProgressActiveRuns = 0.0;
421 float progress = (progByTotalRuns > progByHardOmission)? progByTotalRuns : progByHardOmission;
466 config->addSubsection( model_config );
473 child_config->addNameValue(
"Id", i );
474 child_config->addNameValue(
"OmissionError",
_bestRun[i]->getOmission() * 100 );
475 child_config->addNameValue(
"CommissionError",
_bestRun[i]->getCommission() * 100 );
478 child_config->addSubsection( alg_config );
480 model_config->addSubsection( child_config );
490 if ( ! model_config ) {
497 _numBestRuns = model_config->getAttributeAsInt(
"Count", 0 );
503 Configuration::subsection_list::const_iterator fin = runs.end();
504 Configuration::subsection_list::const_iterator it = runs.begin();
508 for ( i = 0; it != fin; ++it ) {
519 if ( run_config->getName() !=
"Run" ) {
int _commissionSampleSize
AlgorithmPtr getAlgorithm()
void warn(const char *format,...)
'Warn' level.
std::vector< ConfigurationPtr > subsection_list
void sortRuns(AlgorithmRun **runList, int nelements, int errorType)
static AlgorithmPtr newAlgorithm(std::string const id)
float getProgress() const
double _commissionThreshold
double Scalar
Type of map values.
Scalar getValue(const Sample &x) const
float getProgress() const
void _getConfiguration(ConfigurationPtr &) const
static Log * instance()
Returns the instance pointer, creating the object on the first call.
virtual int transferParametersToAlgorithm()=0
void error(const char *format,...)
'Error' level.
void printListOfRuns(string msg, AlgorithmRun **runs, int numOfRuns)
double getOmission() const
AlgorithmRun ** _activeRun
int getParameter(std::string const &name, std::string *value)
int _currentModelsUnderOmissionThreshold
int earlyTerminationConditionMet()
double getError(int type) const
void splitSampler(const SamplerPtr &orig, SamplerPtr *train, SamplerPtr *test, double propTrain)
bool _softOmissionThreshold
int calculateBestSubset()
BestSubsets(AlgMetadata *metadata)
void _setConfiguration(const ConstConfigurationPtr &)
double getCommission() const
AlgorithmRun ** _finishedRun
void info(const char *format,...)
'Info' level.
Scalar getValue(const Sample &x) const
double _omissionThreshold
AlgParameter * _alg_params
int getConvergence(Scalar *const val) const
void debug(const char *format,...)
'Debug' level.
int initialize(int id, int comm_samples, const SamplerPtr &train_sampler, const SamplerPtr &test_sampler)