Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Cross-Validation

La validación cruzada entrena y evalúa un modelo en k particiones rotatorias de un conjunto de datos para estimar su capacidad de generalización. Explica los pasos de la validación k-fold, las variantes, la fuga de datos y el código.

La validación cruzada estima el rendimiento de un modelo con datos no vistos entrenándolo y evaluándolo varias veces con distintas particiones del mismo conjunto de datos, y combinando las puntuaciones. En la validación cruzada de k pliegues, los datos se dividen en k partes iguales llamadas pliegues, y cada pliegue se utiliza una vez como datos de validación mientras el modelo se entrena con los otros k − 1 pliegues. La media de las k puntuaciones estima el rendimiento, y su dispersión indica cuánto depende esa estimación de los ejemplos que hayan caído en el conjunto de validación. La validación cruzada es el método estándar de evaluación cuando los datos son demasiado escasos para que una única partición reservada proporcione una puntuación fiable; también se utiliza ampliamente para comparar algoritmos y ajustar hiperparámetros sin tocar los datos de prueba.

Cómo funciona la validación cruzada de k pliegues#

El conjunto de datos se baraja una vez y se divide en k pliegues, normalmente 5 o 10. En cada una de las k rondas, se entrena un modelo nuevo con k − 1 pliegues y se evalúa con el pliegue restante, de modo que cada ejemplo se utiliza exactamente una vez para la validación y k − 1 veces para el entrenamiento. Se calcula la media de las k puntuaciones y se informa junto con su desviación estándar. Una vez que la validación cruzada ha seleccionado un modelo o un conjunto de hiperparámetros, normalmente se vuelve a entrenar el modelo final con todos los datos de entrenamiento y esos ajustes. La validación cruzada dejando uno fuera es el caso extremo en el que k equivale al número de ejemplos: utiliza la mayor cantidad de datos posible para entrenar en cada ronda, a costa de entrenar tantos modelos como ejemplos haya.

Cómo interpretar las puntuaciones de validación cruzada#

La dispersión entre pliegues es tan informativa como la media. El siguiente script de scikit-learn ejecuta una validación cruzada de 5 pliegues con el conjunto de datos de cáncer de mama incluido:

from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import StratifiedKFold, cross_val_score
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler

# 569 labeled tumor samples with 30 features each
X, y = load_breast_cancer(return_X_y=True)

# The scaler sits inside the pipeline, so each round fits it on that round's training folds only
model = make_pipeline(StandardScaler(), LogisticRegression(max_iter=1000))

# 5 stratified folds: each sample is validated exactly once
folds = StratifiedKFold(n_splits=5, shuffle=True, random_state=0)
scores = cross_val_score(model, X, y, cv=folds)
print("Fold accuracies:", scores.round(3))
print(f"Mean {scores.mean():.3f} +/- {scores.std():.3f}")

Las cinco exactitudes de los pliegues oscilan entre 0.956 y 1.000, con una media de 0.979 y una desviación estándar de 0.014. Una única partición 80/20 habría dado cualquiera de esos cinco valores, un intervalo de 4,4 puntos porcentuales. Al colocar el escalador dentro de la canalización, el pliegue de validación no interviene en las estadísticas de preprocesamiento de los datos; escalar primero todo el conjunto de datos provocaría filtración de datos desde cada pliegue de validación al entrenamiento.

Cómo elegir una variante de validación cruzada#

La validación cruzada k-fold simple presupone que los ejemplos son independientes e intercambiables. Si no lo son, una partición aleatoria filtra información o genera pliegues que no representan bien la tarea:

  • k-fold estratificada: mantiene en cada pliegue las mismas proporciones de clase que en el conjunto de datos completo, algo importante cuando una clase poco frecuente podría quedar fuera de un pliegue.
  • Validación cruzada k-fold por grupos: mantiene todos los ejemplos de un grupo, como un paciente, un vídeo o una ubicación de campo, en el mismo pliegue, para que el modelo nunca se valide con imágenes de entrenamiento casi idénticas. La validación cruzada k-fold estratificada por grupos combina ambas restricciones.
  • Partición de series temporales: entrena solo con datos del pasado y valida con el periodo siguiente; amplía la ventana de entrenamiento en cada ronda porque, al barajar datos ordenados en el tiempo, el modelo puede ver el futuro.
  • Validación cruzada anidada: ejecuta un ciclo interno de validación cruzada para ajustar los hiperparámetros dentro de cada pliegue externo, de modo que la puntuación externa no se infle por ajustar el modelo con los mismos pliegues que evalúa.

Validación cruzada para aprendizaje profundo#

Entrenar una red profunda k veces multiplica por k el coste de cálculo, así que conjuntos de datos grandes, como ImageNet y COCO, utilizan una única partición fija de validación, que ya es suficientemente grande para obtener una puntuación estable. La validación cruzada resulta útil con conjuntos de datos de visión pequeños, de unos cientos a unos miles de imágenes, donde una única partición de validación puede contener apenas unos pocos ejemplos de cada clase. La guía de validación cruzada k-fold de Ultralytics divide un conjunto de datos de detección en cinco pliegues con KFold de scikit-learn, escribe listas de imágenes de entrenamiento y validación y un YAML del conjunto de datos para cada pliegue, y entrena un modelo YOLO26 por pliegue. Como las imágenes de detección suelen contener varias clases, no se pueden estratificar con una sola etiqueta; por eso, la guía también registra en cada pliegue la proporción entre las etiquetas de validación y las de entrenamiento para cada clase.

  • Validación con partición reservada: una única partición, como 80/20, que se evalúa una vez. Cuesta una ejecución de entrenamiento y es adecuada para conjuntos de datos grandes; su puntuación depende de los ejemplos que caigan en la partición de validación.
  • Remuestreo bootstrap: genera conjuntos de entrenamiento mediante muestreo con reemplazo y evalúa cada modelo con los ejemplos que quedan fuera de la muestra. k-fold divide los datos sin reemplazo, de modo que cada ejemplo queda en exactamente un pliegue.
  • Evaluación con conjunto de prueba: la validación cruzada selecciona entre modelos y ajustes. Un conjunto de prueba independiente, que se mantiene fuera de todos los pliegues, proporciona la estimación final del modelo elegido.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático