Una prueba de IA con varias lecturas de la misma máquina necesita decidir qué mantiene fuera
GroupKFold separa grupos entre entrenamiento y prueba. Mantener proporciones de clases responde a otra condición y no asegura por sí solo esa separación.

Supongamos que se quiere evaluar un clasificador con varias lecturas tomadas de cada máquina. Antes de repartir filas al azar conviene precisar la pregunta: ¿se quiere comprobar su comportamiento con nuevas lecturas de máquinas conocidas o con máquinas que no participaron en el entrenamiento? El modo de separar los registros debe responder a ese objetivo.
La documentación de scikit-learn describe GroupKFold como una división con grupos que no se solapan entre entrenamiento y prueba. Cada grupo aparece una vez en el conjunto de prueba a lo largo de las particiones y hacen falta al menos tantos grupos distintos como particiones. La etiqueta del grupo se proporciona para las muestras; no se deduce automáticamente del significado de las columnas.
Construcción propia: hay seis máquinas ficticias, A a F, con tres lecturas cada una, 18 registros en total. Si una partición de ejemplo reserva D, E y F, sus nueve lecturas quedan fuera y las nueve de A, B y C dentro. No es una salida ejecutada de GroupKFold, sino una distribución manual que permite comprobar la restricción: ninguna letra aparece en ambos lados de esa partición.
Conservar porcentajes de clases es otra cuestión. StratifiedKFold busca preservar su distribución, pero ese objetivo no expresa por sí solo la restricción de grupos del ejemplo. Revisar ambas condiciones evita llamar «independiente» a una prueba solo porque tenga porcentajes parecidos. El ejemplo no ha entrenado un modelo ni acredita capacidad de generalización: deja explícito qué se desea reservar antes de interpretar cualquier resultado.