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

Function CatBoostCreateFromMatrix_R

catboost/R-package/src/catboostr.cpp:228–430  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

226
227
228EXPORT_FUNCTION CatBoostCreateFromMatrix_R(SEXP floatAndCatMatrixParam,
229 SEXP targetParam,
230 SEXP catFeaturesIndicesParam,
231 SEXP textMatrixParam,
232 SEXP textFeaturesIndicesParam,
233 SEXP pairsParam,
234 SEXP graphParam,
235 SEXP weightParam,
236 SEXP groupIdParam,
237 SEXP groupWeightParam,
238 SEXP subgroupIdParam,
239 SEXP pairsWeightParam,
240 SEXP baselineParam,
241 SEXP featureNamesParam,
242 SEXP classLabelsParam) {
243 SEXP result = NULL;
244 R_API_BEGIN();
245 SEXP dataDim = floatAndCatMatrixParam != R_NilValue ?
246 getAttrib(floatAndCatMatrixParam, R_DimSymbol) :
247 getAttrib(textMatrixParam, R_DimSymbol);
248 ui32 dataRows = SafeIntegerCast<ui32>(INTEGER(dataDim)[0]);
249 ui32 floatAndCatColumns = floatAndCatMatrixParam == R_NilValue ? 0 :
250 SafeIntegerCast<ui32>(INTEGER(getAttrib(floatAndCatMatrixParam, R_DimSymbol))[1]);
251 ui32 textColumns = textMatrixParam == R_NilValue ? 0 :
252 SafeIntegerCast<ui32>(INTEGER(getAttrib(textMatrixParam, R_DimSymbol))[1]);
253 ui32 dataColumns = floatAndCatColumns + textColumns;
254 SEXP targetDim = getAttrib(targetParam, R_DimSymbol);
255 ui32 targetRows = 0;
256 ui32 targetColumns = 0;
257 if (targetDim != R_NilValue) {
258 targetRows = SafeIntegerCast<ui32>(INTEGER(targetDim)[0]);
259 targetColumns = SafeIntegerCast<ui32>(INTEGER(targetDim)[1]);
260 }
261 SEXP baselineDim = getAttrib(baselineParam, R_DimSymbol);
262 size_t baselineRows = 0;
263 size_t baselineColumns = 0;
264 if (baselineParam != R_NilValue) {
265 baselineRows = static_cast<size_t>(INTEGER(baselineDim)[0]);
266 baselineColumns = static_cast<size_t>(INTEGER(baselineDim)[1]);
267 }
268
269 auto loaderFunc = [&] (IRawFeaturesOrderDataVisitor* visitor) {
270 TDataMetaInfo metaInfo;
271
272 TVector<TString> featureId;
273 featureId.reserve(dataColumns);
274 if (featureNamesParam != R_NilValue) {
275 for (size_t i = 0; i < dataColumns; ++i) {
276 featureId.push_back(CHAR(asChar(VECTOR_ELT(featureNamesParam, i))));
277 }
278 }
279
280 metaInfo.FeaturesLayout = MakeIntrusive<TFeaturesLayout>(
281 dataColumns,
282 ToUnsigned(GetVectorFromNullableSEXP<int>(catFeaturesIndicesParam, "cat_features_indices"_sb)),
283 ToUnsigned(GetVectorFromNullableSEXP<int>(textFeaturesIndicesParam, "text_features_indices"_sb)),
284 TVector<ui32>{}, // TODO(akhropov) support embedding features in R
285 featureId);

Callers

nothing calls this directly

Calls 15

ToUnsignedFunction · 0.85
SetClassLabelsFunction · 0.85
AddTargetFunction · 0.85
CreateDataProviderFunction · 0.85
Y_UNUSEDFunction · 0.85
yresizeMethod · 0.80
AddWeightsMethod · 0.80
moveFunction · 0.50
reserveMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected