La pregunta oculta en un resultado excelente
Un sistema de inspección clasifica casi todas las imágenes reservadas. Parece listo para otra línea, pero las imágenes proceden de máquinas, iluminación, fondos y geometrías familiares. ¿Medimos reconocimiento del defecto o del contexto? La respuesta depende del diseño de la prueba antes que de la arquitectura.
Resumen. Un clasificador que solo recuerda identidades obtiene 100% al dividir observaciones aleatoriamente y 50% con máquinas nuevas. No es un benchmark visual: no procesamos imágenes. El modelo elemental aísla la pregunta estadística. Derivamos probabilidad de solapamiento, interpretamos matrices de confusión y diferenciamos máquinas conocidas, nuevas y tiempos futuros. Aprenderemos qué promesa respalda realmente una puntuación.
Antes de probar: ¿qué debe ser nuevo?
Entrenar construye una regla con ejemplos etiquetados; probar la aplica a ejemplos excluidos. Otra fila no implica otra situación. Veinte fotogramas de una adquisición comparten condiciones que dos máquinas quizá no compartan. Grupo es el conjunto ligado a una unidad, aquí máquina. No es clase: clase es la respuesta 0 o 1, y un grupo puede contener ambas.
Si el servicio atiende las mismas cien máquinas instaladas, conocer características puede ser legítimo. Para una fábrica nunca observada, la prueba debe representar desconocimiento. Son objetivos distintos, no jerarquía moral de procedimientos. Una exactitud sin unidad excluida oculta la diferencia. Separar máquinas puede ser insuficiente si todas pertenecen a una fábrica y la promesa afecta fábricas nuevas.
Un modelo que no sabe nada de defectos
Generamos cien IDs y asignamos aleatoriamente cincuenta ceros y cincuenta unos. Cada máquina produce veinte filas con igual etiqueta: dos mil en total. Constancia dentro de máquina es hipótesis extrema para mostrar el atajo, no afirmación sobre defectos reales. Cada fila guarda máquina, índice y etiqueta; sin píxeles ni características de piezas.
El clasificador construye diccionario ID-etiqueta. Para IDs desconocidos devuelve mayoría de entrenamiento, cero en empate. Construcción recorre datos; predicción consulta clave sin aprender relación transferible entre aspecto y defecto. Consulta hash tiene coste constante medio; memoria y construcción crecen con grupos y filas. Es una referencia diagnóstica, no arquitectura productiva.
Por qué dividir filas casi garantiza familiaridad
Asignamos cada fila independientemente a entrenamiento con p = 0,8. Una fila conocida como prueba deja m − 1 oportunidades de ver su máquina entre entrenamiento. Para no verla, todas las restantes deben ir a prueba. Multiplicamos probabilidades por independencia y restamos de uno para el suceso contrario.
P(no vista) = 0.2^19 = 5.24288 × 10^−14
Una fila por máquina da familiaridad cero; dos, 80%; cinco, 99,84%; veinte, casi uno. Describen división, no acierto. Pero en nuestro diccionario conocer grupo revela respuesta. Más fotogramas hacen la prueba familiar sin aportar conocimiento de máquinas nuevas. La fórmula supone asignaciones Bernoulli independientes; fijar exactamente número de filas requiere cálculo combinatorio distinto.
Dos protocolos, dos resultados ejecutados
Con semilla 20260929, Python produce 1.577 filas de entrenamiento y 423 de prueba. Las cien máquinas aparecen en ambos; acierta las 423. Segundo protocolo reserva diez máquinas de cada clase completas. Ochenta restantes aportan 1.600 filas. Ningún ID de prueba es conocido: las 400 predicciones usan cero y solo 200 aciertan.
| Protocolo | Filas entrenamiento/prueba | Grupos compartidos | Exactitud |
|---|---|---|---|
| row Bernoulli p=0.8 | 1577 / 423 | 100 | 100% |
| held-out groups | 1600 / 400 | 0 | 50% |
La matriz explica más que el 50%. Filas son clases verdaderas 0 y 1; columnas predichas 0 y 1. [[200, 0], [200, 0]] reconoce todos los ceros y ningún uno: no reconocimiento moderado, sino predicción constante. Primera matriz [[207, 0], [0, 216]]. Ambas, etiquetas, grupos excluidos e índices están en JSON para reconstruir resultado.

Qué demuestra el contraejemplo y sus límites
Demostramos que separar filas no establece en general generalización entre grupos. No que toda red memorice máquinas ni que 50% sea rendimiento industrial típico. Aprender características del defecto puede funcionar en grupos nuevos. Refutamos deducción: ninguna fila de prueba estuvo en entrenamiento, por tanto validamos máquinas nuevas. Basta un caso ejecutado con premisa verdadera y conclusión falsa.
Balancear clases del test por grupos aísla memoria. Una planta puede tener otras frecuencias y tamaños. Media por fotograma pesa más máquinas con más imágenes; media de exactitudes por máquina les da igual peso. Ninguna es universal: depende de decisión. Aquí veinte filas por grupo igualan ambas medias, coincidencia no generalizable.
De demostración a diseño de prueba
Para probar máquinas nuevas, elegirlas antes de construir conjuntos. Transformaciones del mismo original quedan al mismo lado; recortar o aumentar antes de dividir puede repartir casi copias. Normalización y selección de características se aprenden solo en entrenamiento, repitiendo ajuste dentro de cada partición de selección. El orden es parte del método, no trámite.
Scikit-learn documenta GroupKFold para separar grupos y StratifiedGroupKFold para preservar aproximadamente proporciones de clases. No eligen unidad significativa. Implementamos una sola reserva equilibrada por grupos, sin ejecutar scikit-learn ni validación cruzada. Esta repite ajuste y evaluación para elegir configuraciones; grupos del test final deben permanecer fuera de esa elección.
Queda tiempo: mañana una máquina conocida puede tener herramienta gastada, cámara cambiada o producción distinta. Fotogramas históricos aleatorios no representan necesariamente transiciones. Probar mañana en máquinas actuales exige orden temporal; mañana en fábrica nueva exige ambas diferencias. Ninguna división universal vuelve irrelevante el contexto operativo.
Cuatrocientos fotogramas de veinte máquinas no son cuatrocientas pruebas independientes de transferencia. Cuantificar incertidumbre entre máquinas exige conservar grupos al remuestrear; veinte unidades pueden omitir variantes raras. No calculamos intervalos ni rendimiento poblacional: contraejemplo definido por datos y protocolo guardados. Repetir verifica cálculo, no amplía población.
La respuesta: contar situaciones nuevas, no solo filas
Mil imágenes pueden describir bien una máquina sin equivaler a mil pruebas de máquinas nuevas. Diccionario alcanzó 100% sin aprender defectos: recordarlo al leer benchmarks. Evaluación útil declara qué sigue familiar y qué cambia, divide en consecuencia e interpreta dentro del alcance. Más imágenes no resuelven pregunta; alinear prueba y promesa sí.
Fuentes y reproducibilidad
Fragmento usa cuatro máquinas para mostrar mecanismo. Archivo contiene experimento de cien, semilla, asignaciones y resultados ejecutados con biblioteca estándar Python. No son pruebas EL-AI ni resultados de imágenes industriales. Documentación describe separadores; datos, derivación y contraejemplo son análisis didáctico del artículo.
def predict(train, test):
memory = {group: label for group, label in train}
return [memory.get(group, 0) for group, _ in test]
train = [('A', 0), ('B', 1)]
for test in [[('A', 0), ('B', 1)], [('C', 0), ('D', 1)]]:
predictions = predict(train, test)
accuracy = sum(p == y for p, (_, y) in zip(predictions, test))/len(test)
print(predictions, accuracy)
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 29 de septiembre de 2026.

