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

Function GetNumFeatureValuesSample

catboost/python-package/catboost/helpers.cpp:358–395  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

356}
357
358void GetNumFeatureValuesSample(
359 const TFullModel& model,
360 const NCatboostOptions::TDatasetReadingParams& datasetReadingParams,
361 int threadCount,
362 const TVector<ui32>& sampleIndicesVector,
363 const TVector<TString>& sampleIdsVector,
364 TVector<TArrayRef<float>>* numFeaturesColumns
365) {
366 auto localExecutor = GetCachedLocalExecutor(threadCount).Get();
367
368 auto sampler = GetProcessor<IDataProviderSampler, TDataProviderSampleParams>(
369 datasetReadingParams.PoolPath,
370 TDataProviderSampleParams {
371 datasetReadingParams,
372 /*OnlyFeaturesData*/ true,
373 /*CpuUsedRamLimit*/ Max<ui64>(),
374 localExecutor
375 }
376 );
377
378 TDataProviderPtr dataProvider;
379 if (!sampleIndicesVector.empty()) {
380 dataProvider = sampler->SampleByIndices(sampleIndicesVector);
381 } else if (!sampleIdsVector.empty()) {
382 dataProvider = sampler->SampleBySampleIds(sampleIdsVector);
383 } else {
384 CB_ENSURE(false, "Neither indices nor sampleIds are provided");
385 }
386 auto objectsDataProvider = dataProvider->ObjectsData;
387 auto rawObjectsDataProvider = dynamic_cast<const TRawObjectsDataProvider*>(objectsDataProvider.Get());
388 CB_ENSURE(rawObjectsDataProvider, "Only non-quantized datasets are supported now");
389
390 for (const auto& floatFeature : model.ModelTrees->GetFloatFeatures()) {
391 auto values = (*rawObjectsDataProvider->GetFloatFeature(floatFeature.Position.Index))->ExtractValues(localExecutor);
392 auto dst = (*numFeaturesColumns)[floatFeature.Position.FlatIndex];
393 Copy(values.begin(), values.end(), dst.begin());
394 }
395}
396
397TMetricsAndTimeLeftHistory GetTrainingMetrics(const TFullModel& model) {
398 if (model.ModelInfo.contains("training"sv)) {

Callers

nothing calls this directly

Calls 11

GetCachedLocalExecutorFunction · 0.85
GetFloatFeaturesMethod · 0.80
CopyFunction · 0.50
GetMethod · 0.45
emptyMethod · 0.45
SampleByIndicesMethod · 0.45
SampleBySampleIdsMethod · 0.45
ExtractValuesMethod · 0.45
GetFloatFeatureMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected