MCPcopy Create free account
hub / github.com/catboost/catboost / CalcAdditiveStats

Function CalcAdditiveStats

catboost/private/libs/distributed/master.cpp:426–453  ·  view source on GitHub ↗

returns [datasetIdx][metricDescription] -> TMetricHolder

Source from the content-addressed store, hash-verified

424
425// returns [datasetIdx][metricDescription] -> TMetricHolder
426static TVector<THashMap<TString, TMetricHolder>> CalcAdditiveStats(const TErrorCalcerParams& errorCalcerParams) {
427 const size_t workerCount = TMasterEnvironment::GetRef().RootEnvironment->GetSlaveCount();
428
429 // poll workers
430 auto additiveStatsFromAllWorkers = ApplyMapper<TErrorCalcer>(
431 workerCount,
432 TMasterEnvironment::GetRef().SharedTrainData,
433 errorCalcerParams);
434 Y_ASSERT(additiveStatsFromAllWorkers.size() == workerCount);
435
436 auto& additiveStats = additiveStatsFromAllWorkers[0];
437 for (size_t workerIdx : xrange<size_t>(1, workerCount)) {
438 const auto& workerAdditiveStats = additiveStatsFromAllWorkers[workerIdx];
439 for (auto datasetIdx : xrange(workerAdditiveStats.size())) {
440 auto& datasetStats = additiveStats[datasetIdx];
441 for (auto& [description, stats] : workerAdditiveStats[datasetIdx]) {
442 THashMap<TString, TMetricHolder>::insert_ctx insertCtx;
443 auto it = datasetStats.find(description, insertCtx);
444 if (it == datasetStats.end()) {
445 datasetStats.insert_direct(std::make_pair(description, stats), insertCtx);
446 } else {
447 it->second.Add(stats);
448 }
449 }
450 }
451 }
452 return additiveStats;
453}
454
455void CalcErrorsDistributed(
456 const NCB::TTrainingDataProviders& trainData,

Callers 2

CalcErrorsDistributedFunction · 0.85
MapSetApproxesFunction · 0.85

Calls 7

xrangeFunction · 0.85
GetSlaveCountMethod · 0.45
sizeMethod · 0.45
findMethod · 0.45
endMethod · 0.45
insert_directMethod · 0.45
AddMethod · 0.45

Tested by

no test coverage detected