@@ -1069,7 +1069,8 @@ CDataFrameUtils::maximizeMinimumRecallForMulticlass(std::size_t numberThreads,
1069
1069
using TMinAccumulator = CBasicStatistics::SMin<double >::TAccumulator;
1070
1070
1071
1071
CPRNG::CXorOShiro128Plus rng;
1072
- std::size_t numberSamples{std::min (std::size_t {1000 }, rowMask.size ())};
1072
+ std::size_t numberSamples{
1073
+ static_cast <std::size_t >(std::min (1000.0 , rowMask.manhattan ()))};
1073
1074
1074
1075
TStratifiedSamplerPtr sampler;
1075
1076
std::tie (sampler, std::ignore) = classifierStratifiedCrossValidationRowSampler (
@@ -1168,7 +1169,8 @@ CDataFrameUtils::maximizeMinimumRecallForMulticlass(std::size_t numberThreads,
1168
1169
};
1169
1170
1170
1171
TDoubleVector objective_;
1171
- doReduce (frame.readRows (numberThreads, 0 , frame.numberRows (), computeObjective, &rowMask),
1172
+ doReduce (frame.readRows (numberThreads, 0 , frame.numberRows (),
1173
+ computeObjective, &sampleMask),
1172
1174
copyObjective, reduceObjective, objective_);
1173
1175
return objective_.maxCoeff ();
1174
1176
};
@@ -1203,7 +1205,7 @@ CDataFrameUtils::maximizeMinimumRecallForMulticlass(std::size_t numberThreads,
1203
1205
1204
1206
TDoubleMatrix objectiveAndGradient;
1205
1207
doReduce (frame.readRows (numberThreads, 0 , frame.numberRows (),
1206
- computeObjectiveAndGradient, &rowMask ),
1208
+ computeObjectiveAndGradient, &sampleMask ),
1207
1209
copyObjectiveAndGradient, reduceObjectiveAndGradient, objectiveAndGradient);
1208
1210
std::size_t max;
1209
1211
objectiveAndGradient.col (0 ).maxCoeff (&max);
0 commit comments