v2026.10.0
All Bundles
Bundle

Core machine learning types: the seedable Random generator, Matrix2D linear algebra and activations, matrix reference holders, the NeuralNetwork and CSV-backed MatrixReader. Compile with -lib ml.

GroupRecall

Recall within one group. Carries the count the rate was computed from, not just the rate. A recall of 1.0 over two positives and a recall of 1.0 over two thousand are not the same claim, and the rate alone cannot tell them apart -- which matters most for exactly the rare groups this type exists to report.

Operations

GetFolds #

How many folds were run.

method : public : GetFolds() ~ Int

Return

TypeDescription
Intfold count

GetOofScores #

One out-of-fold score per input row, in input row order. Each score comes from the fold model that did NOT train on that row, so the vector can be thresholded as a whole without leaking a row into its own score. That is what makes it the right input for choosing an operating point: ThresholdAtFpr over these scores picks a threshold honestly, and it can then be applied unchanged to held-out data. Reported separately from the per-fold means because they answer different questions. The fold means say how much the estimate moves between folds; the pooled vector gives one curve over every row, which is what a single threshold has to be chosen from.

method : public : GetOofScores() ~ Float[]

Return

TypeDescription
Floatthe pooled scores, or Nil from the 3-argument constructor

GetPoint #

The metric on the original sample, not the mean of the resamples.

method : public : GetPoint() ~ Float

Return

TypeDescription
Floatthe point estimate

GetPositives #

Positives in this group, which is what the recall was computed over.

method : public : GetPositives() ~ Int

Return

TypeDescription
Intthe positive count, 0 when the group holds none

GetRecall #

Detected over positives in this group.

method : public : GetRecall() ~ Float

Return

TypeDescription
Floatthe recall, or 0.0 when the group holds no positives

GetReps #

Resamples requested.

method : public : GetReps() ~ Int

Return

TypeDescription
Intthe requested count

GetStdAuc #

Spread of the per-fold AUCs, as a sample standard deviation. Sample rather than population, unlike FeatureScaler: these are k observations of a quantity whose variability is being estimated, not a whole population being standardized. With one fold it is undefined and 0.0 is returned rather than dividing by k-1 = 0, which Objeck raises on.

method : public : GetStdAuc() ~ Float

Return

TypeDescription
Floatthe spread, or 0.0 for fewer than two folds

GetStdRecall #

Spread of the per-fold recalls.

method : public : GetStdRecall() ~ Float

Return

TypeDescription
Floatthe spread, or 0.0 for fewer than two folds

GetUsableReps #

Resamples the metric could actually be computed on. Below GetReps when some resample drew a single class. Worth checking on rare positives: at a few dozen positives in a large sample, a noticeable share of resamples can miss them entirely.

method : public : GetUsableReps() ~ Int

Return

TypeDescription
Intthe usable count

GetWidth #

Width of the interval.

method : public : GetWidth() ~ Float

Return

TypeDescription
Floathigh minus low

ToString #

A one-line summary in the form the write-up wants.

method : public : ToString() ~ String

Return

TypeDescription
Stringe.g. "AUC 0.941 +/- 0.023 over 5 folds"