Los datos de entrenamiento están desequilibrados, pero ¿también debería estar mi conjunto de validación?

9

He etiquetado los datos compuestos por 10000 ejemplos positivos y 50000 ejemplos negativos, dando un total de 60000 ejemplos. Obviamente estos datos están desequilibrados.

Ahora digamos que quiero crear mi conjunto de validación, y quiero usar el 10% de mis datos para hacerlo. Mi pregunta es la siguiente:

¿Debo asegurarme de que mi conjunto de validación TAMBIÉN esté desequilibrado (como un guiño a la verdadera distribución del conjunto de entrenamiento), o debo asegurarme de que mi conjunto de validación esté equilibrado? Entonces, por ejemplo, mi conjunto de validación debe estar hecho de:

  • 10% de ejemplos positivos + 10% de negativos, dando 1000+ y 5000- ejemplos. (Este conjunto de validación refleja el desequilibrio de datos original).
  • ¿O debe hacerse el conjunto de validación de, digamos, 10% positivo, dando 1000+ y (10/5 = 2%) negativos, también dando 1000- ejemplos?

(La misma pregunta para el conjunto de prueba).

Parece que hay muchos métodos sobre cómo entrenar con datos desequilibrados, pero no puedo ver dónde encontrar mejores prácticas sobre si mi conjunto de validación TAMBIÉN debería reflejar el desequilibrio original o no. Finalmente, NO estoy haciendo validación cruzada, usaré un solo conjunto de validación y una red neuronal.

¡Gracias!

Spacey
fuente
No tengo una referencia específica para esto, pero supongo que hay una porque: a) He publicado documentos que involucran divisiones de capacitación / validación y siempre he construido la división para que la tasa positiva general sea equivalente en ambos conjuntos ; b) Recuerdo los comentarios de los revisores que indican que esto es lo que debe hacer.
Gammer
@gammer Lo siento, ¿quieres decir que elegiste el método (1) en mi publicación?
Spacey
Sí, el primero
jugador
@gammer Sí, mira, eso fue lo que pensé al principio, pero parece algo extraño cuanto más lo pienso, ya que si confiamos en nuestro conjunto de entrenamiento, seguramente también deberíamos respetar su distribución e intentar replicarlo en el conjunto de validación también ...
Spacey
Supongo que tal vez depende de cómo se recopiló el conjunto de datos original. ¿Es una muestra aleatoria? Si es así, la división equilibrada tiene sentido porque hace que el conjunto de validación sea más representativo de la población. Si es retrospectivo (por ejemplo, control de casos), entonces podría ser diferente. No estoy seguro. Te he contado mi experiencia. Esperemos que obtenga una respuesta definitiva. Si lo resuelve, publique una respuesta.
Gammer

Respuestas:

8

El objetivo del conjunto de validación es seleccionar la época / iteración donde es más probable que la red neuronal funcione mejor en el conjunto de prueba. Posteriormente, es preferible que la distribución de clases en el conjunto de validación refleje la distribución de clases en el conjunto de prueba, de modo que las métricas de rendimiento en el conjunto de validación sean una buena aproximación de las métricas de rendimiento en el conjunto de prueba. En otras palabras, el conjunto de validación debe reflejar el desequilibrio de datos original.

Franck Dernoncourt
fuente
Sospeché lo mismo Franck. Ahora con eso dicho, (ese conjunto de validación debe reflejar la distribución de datos sesgada original), ¿estaría de acuerdo en que en el conjunto de capacitación, desviamos los datos?
Spacey
@Spacey Una forma de tratar este problema se llama "ponderación de importancia", y esencialmente significa: no volver a muestrear o crear muestras sintéticas, sino simplemente ponderar las muestras de acuerdo con su importancia relativa para la distribución de la prueba. Vea mi respuesta aquí para más detalles.
jhin
1

Utilizando un entrenamiento y datos de prueba naturalmente desequilibrados, me topé con un escenario en el que mi modelo parecía estar mejorando con el tiempo, pero en realidad solo estaba memorizando las muestras de clases minoritarias en el conjunto de entrenamiento y aprendiendo a predecir siempre la clase mayoritaria para todo lo demás.

Diagnostiqué este problema al equilibrar los datos de mi prueba y observar que la precisión y la pérdida de los datos de la prueba empeoraron con más épocas (que no fue el caso con los datos de prueba desequilibrados).

Otra forma de diagnosticar problemas como este sería usar métricas como sensibilidad, especificidad o precisión para una sola clase en lugar de observar la precisión / pérdida general. Esta publicación de blog entra en más detalles sobre esto y ofrece una implementación de muestra de estas métricas en Keras http://www.deepideas.net/unbalanced-classes-machine-learning/

Creo que la solución correcta depende de la aplicación del mundo real de su modelo y de la importancia de la precisión de las clases minoritarias. Por ejemplo, si está entrenando algo como imagenet y nota que tiene poca precisión para su clase de "babosa de mar" que probablemente esté bien. Pero si estuviera entrenando un modelo para predecir si alguien tiene cáncer, entonces la precisión de la clase minoritaria sería muy importante.

robar
fuente
0

Depende de lo que esté optimizando: ¿cuál es su distribución objetivo , sobre la cual le gustaría minimizar la pérdida esperada? Si es igual a la distribución de entrenamiento, entonces los datos de validación deben seguir la misma distribución. Si se trata de una distribución diferente (por ejemplo, si desea que su algoritmo funcione bien en datos equilibrados), en realidad desea minimizar la pérdida esperada sobre esa distribución, y su conjunto de validación debe muestrearse de acuerdo con esa distribución. Esta situación se llama "cambio de covariable", y existe toda una rama de investigación sobre lo que se llama "adaptación de cambio de covariable", es decir, tratar este problema. Hay un libro de Sugiyama / Kawanabe sobre el tema de 2012, llamado "

jhin
fuente