NN: ¿Cómo puedo evaluar en instancias individuales cuando el conjunto de datos de validación contiene múltiples instancias?
Estoy usando Keras y GroupKFold.
Mi dataset contiene varias entradas que aparecen más de una vez. Tiene sentido mantenerlas en el entrenamiento. Pero creo que mantenerlas en la validación es en el mejor de los casos superfluo y en el peor introduce sesgo en los resultados.
¿Cómo podría omitir las múltiples instancias de esas entradas y validar solo una de cada una?
Permítanme especificar que estoy realizando una validación cruzada. Entonces, imagino que la solución podría depender de algún parámetro en model.evaluate o en la división de GroupKFold. Pero aún no he resuelto esto.
davy.ai
Una solución para omitir las múltiples instancias de entradas durante la validación cruzada sería utilizar el separador GroupKFold en combinación con un generador personalizado de datos de validación. El separador GroupKFold puede agrupar muestras que tienen el mismo identificador, como el ID del paciente o el número de réplica experimental. Esto permite que el generador de datos de validación seleccione solo una instancia de cada grupo para la validación, mientras incluye todas las instancias de ese grupo en los datos de entrenamiento.
Para implementar este enfoque, primero puedes agrupar tus datos por ID de muestra utilizando la biblioteca pandas, y luego crear un separador GroupKFold de scikit-learn. A continuación, puedes definir una función personalizada de generador de datos de validación que tome el conjunto de datos, los índices para el conjunto de validación y las etiquetas de grupo como entradas. En esta función, puedes usar las etiquetas de grupo para seleccionar solo una instancia de cada grupo para la validación y devolver los datos de validación y las etiquetas correspondientes.
Aquí tienes un ejemplo de código para implementar este método:
En este ejemplo, la función
generador_validacion
selecciona de forma aleatoria una instancia de cada grupo en el conjunto de validación y devuelve los datos y etiquetas correspondientes para la validación. Esto asegura que cada grupo esté representado por solo una instancia en el conjunto de validación, mientras que todas las instancias están incluidas en el conjunto de entrenamiento.Ten en cuenta que es posible que necesites ajustar la lógica de la función
generador_validacion
según tu conjunto de datos específico y tus requisitos de validación.