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

Method MarginalImputer

catboost/libs/fstr/sage_values.cpp:51–95  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

49class MarginalImputer {
50public:
51 MarginalImputer(
52 const TDataProvider& dataset,
53 NPar::ILocalExecutor* executor,
54 TRestorableFastRng64* randPtr)
55 : RandPtr(randPtr)
56 {
57 LocalExecutor = executor;
58 ReferenceSamplesCount = dataset.GetObjectCount();
59
60 auto objectsPtr = dynamic_cast<TRawObjectsDataProvider*>(dataset.ObjectsData.Get());
61 CB_ENSURE_INTERNAL(objectsPtr, "Zero pointer to raw objects");
62 auto referenceDataProviderPtr = TRawObjectsDataProviderPtr(objectsPtr);
63
64 // float
65 ui32 floatFeaturesCount = dataset.MetaInfo.FeaturesLayout->GetFloatFeatureCount();
66 for (ui32 featureIndex = 0; featureIndex < floatFeaturesCount; ++featureIndex) {
67 auto featureValues = (*referenceDataProviderPtr->GetFloatFeature(featureIndex))->
68 ExtractValues(LocalExecutor);
69 ReferenceSamplesFloat.push_back(std::move(featureValues));
70 }
71
72 // categorical
73 ui32 catFeaturesCount = dataset.MetaInfo.FeaturesLayout->GetCatFeatureCount();
74 for (ui32 featureIndex = 0; featureIndex < catFeaturesCount; ++featureIndex) {
75 auto featureValues = (*referenceDataProviderPtr->GetCatFeature(featureIndex))->
76 ExtractValues(LocalExecutor);
77 ReferenceSamplesCategorical.push_back(std::move(featureValues));
78 }
79
80 // text
81 ui32 textFeaturesCount = dataset.MetaInfo.FeaturesLayout->GetTextFeatureCount();
82 for (ui32 featureIndex = 0; featureIndex < textFeaturesCount; ++featureIndex) {
83 auto featureValues = (*referenceDataProviderPtr->GetTextFeature(featureIndex))->
84 ExtractValues(LocalExecutor);
85 ReferenceSamplesText.push_back(std::move(featureValues));
86 }
87
88 // embedding
89 ui32 embeddingFeaturesCount = dataset.MetaInfo.FeaturesLayout->GetEmbeddingFeatureCount();
90 for (ui32 featureIndex = 0; featureIndex < embeddingFeaturesCount; ++featureIndex) {
91 auto featureValues = (*referenceDataProviderPtr->GetEmbeddingFeature(featureIndex))->
92 ExtractValues(LocalExecutor);
93 ReferenceSamplesEmbedding.push_back(std::move(featureValues));
94 }
95 }
96
97 void ImputeInplace(
98 const TVector<std::pair<ui32, EFeatureType>>& features,

Callers

nothing calls this directly

Calls 13

GetCatFeatureCountMethod · 0.80
moveFunction · 0.50
GetObjectCountMethod · 0.45
GetMethod · 0.45
GetFloatFeatureCountMethod · 0.45
ExtractValuesMethod · 0.45
GetFloatFeatureMethod · 0.45
push_backMethod · 0.45
GetCatFeatureMethod · 0.45
GetTextFeatureCountMethod · 0.45
GetTextFeatureMethod · 0.45

Tested by

no test coverage detected