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

Function TrainCatBoost

catboost/libs/train_interface/catboost_api.cpp:180–230  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

178}
179
180CATBOOST_API bool TrainCatBoost(const TDataSet* trainPtr,
181 const TDataSet* testPtr,
182 const char* paramsJson,
183 ResultHandle* handlePtr) {
184 const auto& train = *trainPtr;
185 const auto& test = *testPtr;
186 THolder<TFullModel> model = MakeHolder<TFullModel>();
187
188 try {
189
190 NJson::TJsonValue plainJsonParams;
191 NJson::ReadJsonTree(TString(paramsJson),
192 &plainJsonParams);
193
194 NCatboostOptions::TOption<ETaskType> taskType("task_type", ETaskType::CPU);
195 TJsonFieldHelper<decltype(taskType)>::Read(plainJsonParams, &taskType);
196
197
198 TDataProviders dataProviders = MakeDataProviders(
199 MakeProvider(train),
200 MakeProvider(test));
201 NCB::TQuantizedFeaturesInfoPtr quantizedFeaturesInfo;
202
203 TMetricsAndTimeLeftHistory history;
204 TEvalResult evalResult;
205 TVector<TEvalResult*> evalResultsPtr = {&evalResult};
206
207 TMaybe<TCustomObjectiveDescriptor> objectiveDescriptor;
208 TMaybe<TCustomMetricDescriptor> evalMetricDescriptor;
209 TString outModelPath = "";
210 TrainModel(plainJsonParams,
211 quantizedFeaturesInfo,
212 objectiveDescriptor,
213 evalMetricDescriptor,
214 Nothing(),
215 std::move(dataProviders),
216 /*initModel*/ Nothing(),
217 /*initLearnProgress*/ nullptr,
218 outModelPath,
219 model.Get(),
220 evalResultsPtr,
221 &history);
222 } catch (...) {
223 Cout << CurrentExceptionMessage() << Endl;
224 Singleton<TErrorMessageHolder>()->Message = CurrentExceptionMessage();
225 return false;
226 }
227
228 (*handlePtr) = model.Release();
229 return true;
230}
231
232}

Callers 1

TrainFunction · 0.85

Calls 10

MakeDataProvidersFunction · 0.85
MakeProviderFunction · 0.85
NothingFunction · 0.85
CurrentExceptionMessageFunction · 0.85
ReadJsonTreeFunction · 0.50
ReadFunction · 0.50
TrainModelFunction · 0.50
moveFunction · 0.50
GetMethod · 0.45
ReleaseMethod · 0.45

Tested by

no test coverage detected