¿Cómo manejar la diferencia entre la distribución del conjunto de prueba y el conjunto de entrenamiento?


23

Creo que una suposición básica del aprendizaje automático o la estimación de parámetros es que los datos invisibles provienen de la misma distribución que el conjunto de entrenamiento. Sin embargo, en algunos casos prácticos, la distribución del conjunto de prueba será casi diferente del conjunto de entrenamiento.

Digamos para un problema de clasificación múltiple a gran escala que trata de clasificar las descripciones de productos en aproximadamente 17,000 clases. El conjunto de entrenamiento tendrá antecedentes de clase muy sesgados, de modo que algunas clases podrían tener muchos ejemplos de entrenamiento, pero algunos podrían tener solo algunos. Supongamos que un cliente nos da un conjunto de pruebas con etiquetas de clase desconocidas. Intentamos clasificar cada producto en el conjunto de prueba en una de las 17,000 clases, utilizando el clasificador entrenado en el conjunto de entrenamiento. El conjunto de prueba probablemente tendría distribuciones de clase asimétricas, pero probablemente muy diferente de la del conjunto de capacitación, ya que podrían estar relacionadas con diferentes áreas de negocios. Si las distribuciones de dos clases son muy diferentes, el clasificador entrenado podría no funcionar bien en el conjunto de prueba. Esto parece especialmente obvio con el clasificador Naive Bayes.

¿Hay alguna forma de principios para manejar la diferencia entre el conjunto de entrenamiento y un conjunto de prueba dado particular para clasificadores probabilísticos? Escuché acerca de que "SVM transductivo" hace algo similar en SVM. ¿Existen técnicas similares para aprender un clasificador que funcione mejor en un determinado conjunto de pruebas? Entonces podemos volver a entrenar el clasificador para diferentes conjuntos de pruebas, como se permite en este escenario práctico.

Respuestas:


17

Si la diferencia radica solo en las frecuencias de clase relativas en los conjuntos de entrenamiento y prueba, entonces recomendaría el procedimiento EM presentado en este documento:

Marco Saerens, Patrice Latinne, Christine Decaestecker: Ajuste de las salidas de un clasificador a nuevas probabilidades a priori: un procedimiento simple. Cálculo neuronal 14 (1): 21-41 (2002) ( www )

Lo usé yo mismo y descubrí que funcionó muy bien (sin embargo, necesita un clasificador que genere una probabilidad de pertenencia a la clase).

Si la distribución de patrones dentro de cada clase cambia, entonces el problema se conoce como "cambio covariable" y hay un excelente libro de Sugiyama y Kawanabe . Muchos de los documentos de este grupo están disponibles en línea, pero recomendaría leer el libro también si puede obtener una copia. La idea básica es ponderar los datos de entrenamiento de acuerdo con la diferencia de densidad entre el conjunto de entrenamiento y el conjunto de prueba (para lo cual no se requieren etiquetas). Una manera simple de obtener la ponderación es mediante el uso de la regresión logística para predecir si un patrón se extrae del conjunto de entrenamiento o del conjunto de prueba. La parte difícil es elegir cuánta ponderación aplicar.

Vea también la bonita publicación de blog de Alex Smola aquí .


¡Muchas gracias por proporcionar tantos consejos útiles!
Fashandge

no hay problema, este tipo de situaciones "no estándar" son realmente interesantes, y el cambio de covariables es un área de investigación particularmente útil.
Dikran Marsupial

1
Es bueno saberlo. Aunque "no estándar", es realista en la práctica.
Fashandge

1

Encontré un excelente tutorial sobre la adaptación del dominio que podría ayudar a explicar esto con más detalle: http://sifaka.cs.uiuc.edu/jiang4/domain_adaptation/survey/da_survey.html La única solución que no se ha mencionado aquí se basa en ADABOOST. Aquí está el enlace al artículo original: http://ftp.cse.ust.hk/~qyang/Docs/2007/tradaboost.pdf La idea básica es utilizar algunos de los nuevos datos de prueba para actualizar el aprendizaje de los datos del tren Este artículo es la punta del iceburg sobre el aprendizaje de transferencia, donde tomas lo que sabes de una tarea y lo aplicas a otra.


1
¿Podría incluir algunos puntos de resumen clave del primer tutorial en particular en caso de que el enlace se cierre o su ubicación cambie? Tenemos un problema con la "rotura de enlaces" aquí, donde el valor de algunas de nuestras respuestas anteriores se ha degradado debido a que los enlaces dejan de funcionar, por lo que es bueno si las respuestas pueden ser lo más autónomas posible
Silverfish

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.