Test Data
El conjunto de prueba es una partición reservada que se evalúa una sola vez, después de completar todo el entrenamiento y ajuste, para estimar el rendimiento con datos nuevos. Particiones, tamaño, problemas y código.
Los datos de prueba, también llamados conjunto de prueba o conjunto de reserva, son la parte de un conjunto de datos que se reserva para medir un modelo de aprendizaje automático (ML) ya terminado. No intervienen en el ajuste de los pesos del modelo ni en ninguna decisión de desarrollo, como la arquitectura, los hiperparámetros, el punto de control o el umbral de confianza; se evalúan una vez que esas decisiones son definitivas. Como ni el modelo ni sus desarrolladores se han adaptado a ellos, su precisión, recuperación o media de la precisión media (mAP) ofrece una estimación no sesgada del rendimiento del modelo con nuevos datos de la misma distribución. Es el valor que utilizan los equipos para decidir si un modelo está listo para el despliegue.
Divisiones de entrenamiento, validación y prueba#
Un conjunto de datos suele dividirse en tres subconjuntos independientes, cada uno con una función distinta:
- Datos de entrenamiento: Los ejemplos con los que aprende el optimizador, ajustando los pesos para reducir la pérdida.
- Datos de validación: Se evalúan repetidamente durante el desarrollo para comparar hiperparámetros, detener antes el entrenamiento y elegir el mejor punto de control.
- Datos de prueba: Se evalúan una vez al final para comunicar la métrica con la que se juzga el proyecto.
Las divisiones 80/10/10 o 70/15/15 son habituales en conjuntos de datos con miles de ejemplos, mientras que los conjuntos con millones pueden reservar unos pocos puntos porcentuales. El tamaño necesario del conjunto de prueba depende de la precisión requerida: el error estándar de una precisión p medida en n ejemplos es la raíz cuadrada de p(1 − p)/n; por tanto, 1000 imágenes de prueba con una precisión del 90 % dan un intervalo de confianza del 95 % de aproximadamente ±1,9 puntos porcentuales, y 10 000 imágenes lo reducen a aproximadamente ±0,6. La terminología varía según el campo, y muchos artículos presentan sus resultados finales de ImageNet con el conjunto de validación oficial porque las etiquetas de prueba de ImageNet no son públicas. En Ultralytics YOLO, el YAML del conjunto de datos requiere las rutas train y val, y acepta una ruta opcional test; durante el entrenamiento se evalúa val después de cada época para elegir best.pt, y model.val(data="data.yaml", split="test") evalúa el modelo terminado con las imágenes reservadas en modo de validación.
Por qué no se debe tocar el conjunto de prueba#
Cada decisión tomada tras consultar una puntuación ajusta un poco el modelo a esos datos. Cuando se comparan muchas configuraciones con el conjunto de validación, la ganadora es en parte la que ha tenido suerte con esos ejemplos concretos, así que su puntuación de validación sobrestima su rendimiento en otros datos. El siguiente experimento con scikit-learn elige el mejor número de vecinos para un clasificador de k vecinos más cercanos con un conjunto de datos pequeño y ruidoso, y compara la precisión de validación y de prueba del ganador en 30 conjuntos de datos aleatorios:
import numpy as np
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
val_scores, test_scores = [], []
for seed in range(30):
# A small, noisy dataset split 60/20/20 into train, validation, and test
X, y = make_classification(n_samples=400, n_features=20, n_informative=4, flip_y=0.2, random_state=seed)
X_train, X_rest, y_train, y_rest = train_test_split(X, y, test_size=0.4, random_state=seed)
X_val, X_test, y_val, y_test = train_test_split(X_rest, y_rest, test_size=0.5, random_state=seed)
# Model selection: keep the neighbor count with the best validation accuracy
scores = {k: KNeighborsClassifier(k).fit(X_train, y_train).score(X_val, y_val) for k in range(1, 51)}
best_k = max(scores, key=scores.get)
val_scores.append(scores[best_k])
# The test set is scored once, after the choice is final
test_scores.append(KNeighborsClassifier(best_k).fit(X_train, y_train).score(X_test, y_test))
print(f"Chosen model, mean of 30 runs: validation {np.mean(val_scores):.3f}, test {np.mean(test_scores):.3f}")Los modelos elegidos obtienen una media de 0,805 en validación y 0,758 en prueba, así que elegir entre 50 candidatos ha inflado casi cinco puntos la estimación de validación. Ajustar el modelo con el conjunto de prueba ocultaría esa diferencia y trasladaría el mismo optimismo al resultado publicado: una forma de fuga de datos. Las comparativas públicas evitan esto ocultando las etiquetas: los resultados de test-dev de COCO se obtienen enviando predicciones a un servidor de evaluación. En los modelos de lenguaje grandes (LLM), las preguntas de prueba que aparecen en los datos de preentrenamiento a escala web contaminan una comparativa, por lo que LiveCodeBench sigue añadiendo nuevos problemas de concursos y evalúa cada modelo con problemas publicados después de la fecha de corte de su entrenamiento.
Crear un conjunto de prueba fiable#
Una puntuación de prueba predice el rendimiento en el mundo real solo cuando el conjunto de prueba se parece a los datos que encontrará el modelo, ya sean escenas urbanas para vehículos autónomos o imágenes diagnósticas para el análisis de imágenes médicas:
- Reproduce las condiciones de despliegue: Las cámaras, la iluminación, las estaciones, la geografía y el equilibrio entre clases deberían reflejar el entorno de producción. El conjunto de prueba de un detector de conducción debe incluir escenas nocturnas, con lluvia y con nieve, aunque la mayoría de los trayectos se hagan con buen tiempo.
- Mantén las particiones independientes: Los fotogramas del mismo vídeo, las exploraciones del mismo paciente y las fotos de la misma escena deben estar en una sola partición. Los datos ordenados temporalmente se dividen por fecha, para que el modelo se evalúe con datos futuros.
- Prueba distintas fuentes: En el diagnóstico por imagen, la validación externa con imágenes de otros hospitales y modelos de escáner muestra si el modelo ha aprendido anatomía o el equipo de un centro concreto.
- Limpia las etiquetas: Los errores en las etiquetas de prueba limitan la precisión medible y pueden cambiar el orden de los modelos, por lo que merecen una revisión especialmente minuciosa.
- Presenta los resultados por segmentos: Las métricas por clase y por condición revelan fallos que una única media oculta.
Incluso un conjunto de prueba reconstruido con cuidado puede cambiar los resultados: cuando los investigadores recrearon el conjunto de prueba de ImageNet siguiendo el proceso de recopilación original, la precisión cayó entre 11 y 14 puntos porcentuales en una amplia variedad de modelos, aunque las mejoras en el conjunto de prueba original se mantuvieron. Los autores atribuyeron la caída a que las imágenes eran ligeramente más difíciles, no a años de reutilización del conjunto de prueba.
Datos de prueba y términos relacionados#
- Validación cruzada: Va rotando qué parte de los datos de desarrollo se utiliza para la validación, lo que ofrece una estimación más estable para seleccionar modelos. Un conjunto de prueba independiente sigue proporcionando el resultado final.
- Conjunto de datos de referencia: Un conjunto de prueba público compartido por un campo de investigación. Como todos los equipos lo evalúan durante años, poco a poco deja de ser un conjunto de datos no visto.
- Conjunto de datos de referencia de alta calidad: Un conjunto de referencia seleccionado y de gran calidad, con respuestas verificadas; suele utilizarse como conjunto de prueba fijo para las pruebas de regresión de aplicaciones con LLM.










