| 178 | } |
| 179 | |
| 180 | CATBOOST_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 | } |
no test coverage detected