ELAI S.r.l.

El mejor de cien modelos puede ser solo el más afortunado

Una derivación binomial y una simulación muestran cómo la selección infla al ganador y por qué hace falta evaluación independiente.

El mejor de cien modelos puede ser solo el más afortunado

Un resultado que mejora sin aprendizaje

Un equipo compara cien variantes de un modelo de IA sobre el mismo conjunto pequeño. Cambia un prompt, configuración o decisión de entrenamiento y conserva el mejor resultado. El ganador parece convincente. ¿Mide su calidad o también la suerte de haber sido elegido entre muchos? Al escoger un sistema empresarial importa: una comparación sin errores de código puede crear expectativas equivocadas.

Para aislar el mecanismo imaginamos cien candidatos que no saben nada: cada respuesta binaria acierta con probabilidad 50%. Los evaluamos en veinte casos y elegimos el mayor conteo. Demostraremos que el ganador promedia aproximadamente 77,32% en selección, aunque sigue en 50% en datos nuevos. Calcularemos también la probabilidad de observar un prometedor 75%. Es un experimento probabilístico con hipótesis explícitas, no un benchmark de redes reales.

Antes de las fórmulas: qué se selecciona

La exactitud es aciertos divididos por casos evaluados. Un candidato elegido antes de ver resultados promediaría 50% al repetir. Pero observamos todas las puntuaciones y elegimos después. Esto favorece por construcción fluctuaciones positivas: las afortunadas entran en el resultado ganador, las negativas quedan descartadas. Nadie necesita falsificar cifras.

Llamaremos conjunto de selección a los veinte casos. Puede llamarse validación, pero importa el uso: los datos que influyen en preferir un modelo participan en desarrollo. Un test independiente evalúa una elección ya fijada. También afecta a prompts, umbrales, preprocesamiento y selección de ejemplos; no solo a pesos neuronales.

El modelo probabilístico y sus hipótesis

Sean n = 20 casos y M = 100 candidatos. Xⱼ cuenta los aciertos del candidato j. Cada indicador es Bernoulli: uno con probabilidad p = 0,5 y cero en caso contrario. Suponemos independencia entre casos y candidatos, fijados antes de observar puntuaciones. Son hipótesis fuertes: configuraciones casi iguales de un modelo real suelen cometer errores correlacionados.

Xⱼ ~ Binomial(n=20, p=0.5) P(Xⱼ = k) = C(20,k) / 2²⁰; k = 0,…,20

C(20,k) es el coeficiente binomial: cuenta maneras de situar k aciertos en veinte posiciones. Cada secuencia tiene probabilidad 1/2²⁰; multiplicar por su cantidad da la probabilidad del conteo. No hay unidades físicas: la exactitud es fracción o porcentaje. No suponemos algoritmo de aprendizaje porque aquí ningún candidato aprende.

Un resultado raro se vuelve frecuente al buscar el máximo

Un candidato elegido de antemano alcanza 75% acertando al menos quince casos. Sumamos conteos de quince a veinte, no solo exactamente quince. El cálculo da α = 0,0206947, aproximadamente 2,07%. Es raro para uno. Pero preguntamos si lo consigue al menos uno de cien, no un candidato específico.

α = P(X ≥ 15) = Σₖ₌₁₅²⁰ C(20,k)/2²⁰ ≈ 0.0206947 P(maxⱼ Xⱼ ≥ 15) = 1 − (1 − α)ᴹ ≈ 0.8764596

La segunda fórmula usa el complemento: nadie llega a quince. Para uno la probabilidad es 1 − α; por independencia, para cien es (1 − α)¹⁰⁰. Restar de uno da aproximadamente 87,65%. Ver al menos un 75% es habitual aquí, aunque todo rendimiento verdadero sea azar. El evento raro correspondía a un candidato fijo, no al ganador de la búsqueda.

Esto no es la probabilidad de que un modelo real sea inútil después de ver su puntuación. Calculamos resultados bajo una hipótesis específica sin señal; invertir el condicionamiento exige más supuestos. El 50% pertenece al juego binario equitativo: clases desbalanceadas, otras métricas o casos dependientes requieren otra distribución nula coherente.

¿Cuánto parece rendir el mejor en promedio?

Definimos Z = maxⱼ Xⱼ, conteo ganador. Su media no requiere simulación. Un entero no negativo se escribe como suma de indicadores: uno si supera cero, otro si supera uno, etcétera. Al tomar esperanza, la media es suma de probabilidades de superar umbrales. F(k) indica que un candidato acierte como máximo k respuestas.

P(Z ≤ k) = F(k)ᴹ E[Z/n] = (1/n) Σₖ₌₁ⁿ [1 − F(k−1)ᴹ] ≈ 0.7731971

Con cien candidatos resulta 77,3197%. La fórmula muestra la dirección: elevar F entre cero y uno a mayor potencia no lo aumenta. Así, cada término 1 − Fᴹ no disminuye al añadir candidatos. El máximo observado mejora por construcción aunque las probabilidades individuales no cambien. Un candidato devuelve exactamente 50%, una comprobación útil.

Candidatos MExactitud seleccionada esperadaP(máximo ≥ 75%)
150.00%2.07%
562.91%9.93%
1067.03%18.87%
5074.63%64.85%
10077.32%87.65%
Esperanzas de sumas binomiales, no benchmarks. El eje horizontal es logarítmico. La curva creciente usa los datos de selección; la línea del 50% representa el test independiente del ganador. Los segmentos unen valores calculados.
Esperanzas de sumas binomiales, no benchmarks. El eje horizontal es logarítmico. La curva creciente usa los datos de selección; la línea del 50% representa el test independiente del ganador. Los segmentos unen valores calculados.

Por qué un test nuevo vuelve al 50%

Sea J el índice seleccionado y Aⱼ su exactitud en un test nuevo. J depende solo de selección. Por hipótesis, el test es independiente y cada candidato tiene exactitud esperada 0,5. Saber quién ganó no informa favorablemente sobre sus nuevos resultados. Separamos ganadores posibles y ponderamos por su probabilidad de selección.

E[Aⱼ | J=j] = 0.5 E[A_J] = Σⱼ P(J=j) · E[Aⱼ | J=j] = 0.5

Lo decisivo es independencia, no «test» en el nombre del archivo. Cambiar ganador, umbral o ejemplos mostrados tras ver resultados rompe el protocolo. Probar una vez al ganador fijado no repite la competición de cien en el nuevo conjunto. Estima ese candidato, pero no elimina incertidumbre por pocos ejemplos o falta de representatividad.

La simulación ejecutada y lo que mide

El script ejecuta 5.000 repeticiones con semilla 20261004 en Python 3.14.0. Genera cien conteos de veinte pruebas, elige el máximo y desempata por menor índice. Después genera cien resultados nuevos para el ganador. Como las distribuciones son iguales y el test independiente, no necesita evaluar a los noventa y nueve descartados. No usa etiquetas reales, redes entrenadas ni servicios de IA.

La media seleccionada es 77,286%; en test nuevo, 50,0476%. Están cerca de 77,3197% y 50% analíticos. La diferencia residual es variabilidad Monte Carlo por repeticiones finitas. JSON guarda índice ganador y ambos conteos, semilla, versión y teoría; el código reconstruye también los sorteos. No elegimos la semilla para favorecer el resultado.

También reporta errores estándar de las medias, unos 0,064 y 0,070 puntos porcentuales: desviación entre repeticiones dividida por √5000. Miden precisión bajo monedas independientes, no incertidumbre de un producto real. Una simulación precisa puede describir con precisión un modelo probabilístico que no representa la aplicación.

Dos opciones: corregir la búsqueda o separar evaluación

Juzgar el máximo en el mismo conjunto exige incluir la búsqueda en su distribución de referencia. Con independencia tenemos fórmula exacta. Sin independencia entre candidatos, pero con probabilidades marginales válidas, la cota de la unión limita la probabilidad de algún exceso por la suma individual. Es la base de Bonferroni: simple y a menudo conservador.

P(∪ⱼ {Xⱼ ≥ k}) ≤ Σⱼ P(Xⱼ ≥ k) = M · P(X ≥ k)

Para una cota global no superior al 5%, el primer umbral entero útil es 18 de 20, el 90%. La cota es aproximadamente 2,0123%; la probabilidad independiente exacta, 1,9923%. La discreción explica parte de la diferencia: no podemos exigir 17,4 aciertos. No valida cualquier experimento de cien intentos: distribución binomial y familia de comparaciones deben corresponder al protocolo real.

Otra vía reserva un test final al procedimiento fijado. Con pocos datos, la validación cruzada anidada separa elección y evaluación: los ciclos internos eligen variantes y el externo evalúa el proceso con datos excluidos de la elección. No ejecutamos ese algoritmo ni inventamos resultados. Se evalúa el proceso completo, no un ganador ya optimizado en todos los datos.

Cuando falla la independencia

En el extremo contrario, cien candidatos dan respuestas idénticas. Sus conteos coinciden y el máximo es un conteo único. La esperanza vuelve al 50% y alcanzar quince sigue en 2,07%, no 87,65%. Cien nombres no equivalen a cien intentos independientes. Entre extremos hay muchas dependencias; no basta dividir el número por una correlación elegida intuitivamente.

Los casos también pueden depender: fotogramas cercanos o documentos casi duplicados no aportan necesariamente veinte observaciones distintas. Aquí n entra en la varianza p(1 − p)/n. Con n = 20, la desviación es aproximadamente 11,18 puntos porcentuales. Sin independencia, la fórmula no describe automáticamente la variabilidad real. Añadir filas puede dar falsa precisión.

¿Cuánto ayudan más ejemplos?

Repetimos la suma cambiando n y manteniendo M = 100. Con cien casos el máximo esperado baja a 62,4762%; con quinientos, a 55,6017%. La capacidad real sigue en 50%. Más observaciones independientes estrechan fluctuaciones y reducen la ventaja del azar. Ningún tamaño especial la elimina: quedan unos 12,48 puntos de optimismo con cien casos y 5,60 con quinientos. Son resultados del modelo probabilístico, no recomendaciones universales de tamaño de test.

Con presupuesto limitado, buscar más configuraciones y medir mejor cada una son usos distintos de recursos. Buscar abre oportunidades de candidatos realmente mejores, si existen, pero también de seleccionar fluctuaciones; medir mejor reduce incertidumbre bajo supuestos adecuados. Aquí no estimamos el primer beneficio porque todos son equivalentes. Cuantificamos por qué no podemos presentar el máximo como si no hubiera habido búsqueda.

En código, getrandbits(n) produce n bits pseudoaleatorios y bit_count cuenta unos: genera aciertos, no documentos. cdf suma coeficientes binomiales y mean_max aplica la fórmula. Las aserciones verifican M = 1, crecimiento de máximos y acuerdo aproximado entre simulación y teoría. Los conteos combinatorios son enteros exactos; probabilidades y potencias finales usan coma flotante. Las cifras están redondeadas y no afirman precisión experimental en datos reales.

Evidencia, límites y conclusión

Cawley y Talbot documentan en JMLR 2010 el sobreajuste de selección y sesgo de protocolos. Leímos métodos y comparaciones. Nuestro ejemplo binomial aísla un mecanismo más simple; no reproduce sus clasificadores.

El ganador no es necesariamente malo. Buscar puede encontrar mejores sistemas cuando las capacidades reales difieren; aquí las igualamos para aislar azar. Tampoco un test independiente garantiza cualquier empresa o contexto futuro. La conclusión precisa es que el puntaje usado para ganar una búsqueda no estima por sí solo sin sesgo el rendimiento en casos nuevos.

Para interpretar una comparación preguntamos qué datos eligieron el modelo, cuántos intentos hubo y cuáles verificaron la elección sin cambiarla. Conectamos estadística y decisión. El 77% no era inventado: estaba bien medido, pero respondía otra pregunta si se presentaba como capacidad general. Comprenderlo distingue una búsqueda exitosa de una prueba convincente de valor.

Bibliografía y código

Gavin C. Cawley, Nicola L. C. Talbot — On Over-fitting in Model Selection and Subsequent Selection Bias in Performance Evaluation, JMLR 11 (2010), 2079–2107.

from experiment import run
r = run()
print(round(r['exact']['expected_selected_accuracy'], 6))
print(round(r['exact']['family_tail_15'], 6))
print(r['simulation'])

Código, datos e instrucciones · JSON. Cálculos didácticos ejecutados con Python 3.14.0; figuras con Matplotlib 3.11.2. Análisis asistido por IA, sin afirmar revisión por pares ni humana. Portada original ImageGen ilustrativa: no documenta personas, sedes ni instalaciones de EL-AI. Fuentes consultadas el 4 de octubre de 2026.