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

Function GenerateMedianBorders

library/cpp/grid_creator/binarization.cpp:1046–1063  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1044}
1045
1046static THashSet<float> GenerateMedianBorders(
1047 const TVector<float>& featureValues, const TMaybe<TVector<float>>& initialBorders, int maxBordersCount) {
1048 THashSet<float> result;
1049 ui64 total = featureValues.size();
1050 if (total == 0 || featureValues.front() == featureValues.back()) {
1051 return result;
1052 }
1053
1054 for (int i = 0; i < maxBordersCount; ++i) {
1055 ui64 i1 = (i + 1) * total / (maxBordersCount + 1);
1056 i1 = Min(i1, total - 1);
1057 float val1 = featureValues[i1];
1058 if (val1 != featureValues[0]) {
1059 result.insert(RegularBorder(val1, featureValues, initialBorders));
1060 }
1061 }
1062 return result;
1063}
1064
1065static THashSet<float> GenerateMedianBordersWithDefaultValue(
1066 // must be sorted, featureValues must include it

Callers 1

BestSplitMethod · 0.85

Calls 7

RegularBorderFunction · 0.85
MinFunction · 0.50
sizeMethod · 0.45
frontMethod · 0.45
backMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected