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

Method Read

catboost/libs/data/baseline.cpp:112–156  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

110 }
111
112 bool TDsvBaselineReader::Read(TObjectBaselineData* data, ui64* objectIdx) {
113 TString line;
114
115 while (true) {
116 if (!Reader_->ReadLine(&line, objectIdx)) {
117 return false;
118 }
119 if (Range_.Contains(*objectIdx)) {
120 break;
121 }
122 }
123 data->Baseline.yresize(BaselineIndexes_.size());
124
125 ui32 baselineIdx = 0;
126 ui32 columnIdx = 0;
127 for (const TStringBuf token : StringSplitter(line).Split(DELIMITER_)) {
128 Y_DEFER { ++columnIdx; };
129
130 CB_ENSURE(
131 columnIdx < BaselineSize_,
132 "Too many columns in baseline file line " << LabeledOutput(*objectIdx)
133 );
134
135 if (baselineIdx >= BaselineIndexes_.size() || columnIdx != BaselineIndexes_[baselineIdx]) {
136 continue;
137 }
138
139 CB_ENSURE(!token.empty(), "Empty token in baseline file line " << LabeledOutput(*objectIdx));
140
141 float baseline;
142 CB_ENSURE(
143 TryFromString(token, baseline),
144 "Failed to parse float " << LabeledOutput(token) << " in baseline file line "
145 << LabeledOutput(*objectIdx)
146 );
147 data->Baseline[baselineIdx] = baseline;
148
149 ++baselineIdx;
150 }
151
152 CB_ENSURE(columnIdx == BaselineSize_, "Not enough columns in baseline file line " << LabeledOutput(*objectIdx));
153 *objectIdx -= Range_.Begin;
154
155 return true;
156 }
157
158 void UpdateClassLabelsFromBaselineFile(
159 const TPathWithScheme& baselineFilePath,

Callers 3

ReadBaselineFunction · 0.45
GetReadBaselineFuncMethod · 0.45
GetReadBaselineFuncMethod · 0.45

Calls 8

StringSplitterFunction · 0.85
TryFromStringFunction · 0.85
yresizeMethod · 0.80
ReadLineMethod · 0.45
ContainsMethod · 0.45
sizeMethod · 0.45
SplitMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected