Every statistics course teaches the same picture: a curve of test error
against model complexity, a pleasant U-shape, and a point in the middle that
you are supposed to find. The picture is correct. What it usually leaves out is
that you do not get to choose the height of the curve — only your position on it.
The decomposition
For a target y generated as y=f(x)+ϵ with Var(ϵ)=σ2, the expected squared error of an estimator f^ at a point x splits into three terms:
The first term does not depend on f^ at all. It is a property of the world,
not of your model. This has an uncomfortable consequence: there is a
floor on the error, and no amount of cleverness moves it.
Why this matters more than it sounds
If the noise floor is large relative to the differences between the models you
are comparing, then your comparison is measuring noise. Concretely, if
σ2=1 and the two candidate models differ in expected error by
0.02, you need a sample large enough to resolve 0.02 against a background of
1. Most of the time, you do not have it.
What to do about it
Estimate the floor first. Re-label a subset, or fit the same model to
two disjoint halves, and see how far apart the answers land. That distance
is the resolution of your experiment.
Compare under a fixed protocol. Change one thing at a time, and keep the
split, the preprocessing and the metric identical.
Report the resolution, not just the result. "Model A beats model B by
0.02, and the annotation noise is 0.31" is a usable sentence. "Model A beats
model B" is not.
The honest summary
The trade-off between bias and variance is real, and you can move along it. What
you cannot do is move the curve down past σ2. Being explicit about that
number — even roughly — changes how you read every comparison you make
afterwards.