From 47f134f4e0131577e4cf8ec35528da18f0c2708b Mon Sep 17 00:00:00 2001 From: schalkdaniel Date: Thu, 7 Mar 2019 12:42:37 +0100 Subject: [PATCH] add check if oob data is present --- src/logger.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/logger.cpp b/src/logger.cpp index 7b8e4eee..f292c20a 100644 --- a/src/logger.cpp +++ b/src/logger.cpp @@ -339,7 +339,7 @@ std::string LoggerInbagRisk::printLoggerStatus () const */ LoggerOobRisk::LoggerOobRisk (const std::string& logger_id0, const bool& is_a_stopper0, std::shared_ptr sh_ptr_loss, - const double& eps_for_break, const unsigned int& patience, std::map> oob_data, + const double& eps_for_break, const unsigned int& patience, std::map> oob_data, std::shared_ptr oob_response) : sh_ptr_loss ( sh_ptr_loss ), eps_for_break ( eps_for_break ), @@ -396,15 +396,21 @@ void LoggerOobRisk::logStep (const unsigned int& current_iteration, std::shared_ sh_ptr_oob_response->constantInitialization(sh_ptr_response->getInitialization()); sh_ptr_oob_response->initializePrediction(); } + std::string blearner_id = sh_ptr_blearner->getDataIdentifier(); // Get data of corresponding selected baselearner. E.g. iteration 100 linear // baselearner of feature x_7, then get the data of feature x_7: - std::shared_ptr oob_blearner_data = oob_data.find(blearner_id)->second; - // Predict this data using the selected baselearner: - arma::mat temp_oob_prediction = sh_ptr_blearner->predict(oob_blearner_data); - sh_ptr_oob_response->updatePrediction(learning_rate, step_size, temp_oob_prediction); + // Check, whether the data object is present or not: + std::map>::iterator it_oob_data = oob_data.find(blearner_id); + if (it_oob_data != oob_data.end()) { + std::shared_ptr oob_blearner_data = it_oob_data->second; + + // Predict this data using the selected baselearner: + arma::mat temp_oob_prediction = sh_ptr_blearner->predict(oob_blearner_data); + sh_ptr_oob_response->updatePrediction(learning_rate, step_size, temp_oob_prediction); + } /* *****************************************************************************************************************************