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

Function mode_model_based_eval

catboost/app/mode_model_based_eval.cpp:20–55  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

18
19
20int mode_model_based_eval(int argc, const char* argv[]) {
21 ConfigureMalloc();
22
23 NCatboostOptions::TPoolLoadParams poolLoadParams;
24 TString paramsFile;
25 NJson::TJsonValue catBoostFlatJsonOptions;
26 ParseModelBasedEvalCommandLine(argc, argv, &catBoostFlatJsonOptions, &paramsFile, &poolLoadParams);
27 NJson::TJsonValue catBoostJsonOptions;
28 NJson::TJsonValue outputOptionsJson;
29 InitOptions(paramsFile, &catBoostJsonOptions, &outputOptionsJson);
30 NCatboostOptions::LoadPoolMetaInfoOptions(poolLoadParams.PoolMetaInfoPath, &catBoostJsonOptions);
31 ConvertIgnoredFeaturesFromStringToIndices(poolLoadParams, &catBoostFlatJsonOptions);
32 ConvertFeaturesToEvaluateFromStringToIndices(poolLoadParams, &catBoostFlatJsonOptions);
33 NCatboostOptions::PlainJsonToOptions(catBoostFlatJsonOptions, &catBoostJsonOptions, &outputOptionsJson);
34 ConvertParamsToCanonicalFormat(poolLoadParams, &catBoostJsonOptions);
35 CopyIgnoredFeaturesToPoolParams(catBoostJsonOptions, &poolLoadParams);
36 NCatboostOptions::TOutputFilesOptions outputOptions;
37 outputOptions.Load(outputOptionsJson);
38
39 //check model based eval restrictions
40 CB_ENSURE(NCatboostOptions::GetTaskType(catBoostJsonOptions) == ETaskType::GPU);
41 const auto featuresToEvaluate = GetOptionFeaturesToEvaluate(catBoostJsonOptions);
42 CB_ENSURE(!featuresToEvaluate.empty(), "Error: no features to evaluate");
43 for (ui32 feature : featuresToEvaluate) {
44 CB_ENSURE(Count(poolLoadParams.IgnoredFeatures, feature) == 0, "Error: feature " + ToString(feature) + " is ignored");
45 }
46 if (outputOptions.IsMetricPeriodSet() && outputOptions.GetMetricPeriod() > 1) {
47 CATBOOST_WARNING_LOG << "Warning: metric_period is ignored because "
48 "model-based feature evaluation needs metric values on each iteration" << Endl;
49 }
50 outputOptions.SetMetricPeriod(1);
51
52 ModelBasedEval(poolLoadParams, outputOptions, catBoostJsonOptions);
53
54 return 0;
55}

Callers

nothing calls this directly

Tested by

no test coverage detected