24 votos

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

Creo que un supuesto básico del aprendizaje automático o de la estimación de parámetros es que los datos no vistos proceden 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 de la del conjunto de entrenamiento.

Digamos que para un problema de multiclasificación a gran escala que intenta clasificar descripciones de productos en unas 17.000 clases. El conjunto de datos de entrenamiento tendrá unas preferencias de clase muy asimétricas, de forma que algunas clases pueden tener muchos ejemplos de entrenamiento, pero otras pueden tener sólo unos pocos. Supongamos que un cliente nos proporciona un conjunto de pruebas con etiquetas de clase desconocidas. Intentamos clasificar cada producto del conjunto de prueba en una de las 17.000 clases, utilizando el clasificador entrenado en el conjunto de entrenamiento. Es probable que el conjunto de prueba tenga distribuciones de clase sesgadas, pero probablemente muy diferentes de las del conjunto de entrenamiento, ya que podrían estar relacionadas con diferentes áreas de negocio. Si las dos distribuciones de 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.

¿Existe algún principio para gestionar la diferencia entre el conjunto de entrenamiento y un conjunto de prueba determinado para los clasificadores probabilísticos? He oído que la "SVM transductiva" hace algo similar en la SVM. ¿Existen técnicas similares para aprender un clasificador que funcione mejor en un conjunto de pruebas determinado? Entonces podemos volver a entrenar el clasificador para diferentes conjuntos de pruebas, como se permite en este escenario práctico.

19voto

John Richardson Puntos 1197

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

Marco Saerens, Patrice Latinne, Christine Decaestecker: Adjusting the Outputs of a Classifier to New a Priori Probabilities: A Simple Procedure. Neural Computation 14(1): 21-41 (2002) ( www )

Yo mismo lo he utilizado y me ha funcionado muy bien (aunque se necesita un clasificador que proporcione una probabilidad de pertenencia a una clase).

Si la distribución de patrones dentro de cada clase cambia, el problema se conoce como "desplazamiento de covariables" y existe un excelente libro de Sugiyama y Kawanabe . Muchos de los artículos de este grupo están disponibles en Internet, pero recomiendo encarecidamente leer también el libro si se puede conseguir un ejemplar. La idea básica es ponderar los datos de entrenamiento en función de la diferencia de densidad entre el conjunto de entrenamiento y el conjunto de prueba (para el que no se requieren etiquetas). Una forma sencilla de obtener la ponderación es utilizar la regresión logística para predecir si un patrón se extrae del conjunto de entrenamiento o del conjunto de prueba. Lo difícil es elegir qué ponderación aplicar.

Véase también la agradable entrada del blog de Alex Smola aquí .

0 votos

Muchas gracias por proporcionarnos tantos consejos útiles.

0 votos

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

1 votos

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

1voto

Billy Puntos 21

He encontrado un excelente tutorial sobre la adaptación de dominios que puede 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 a partir de los datos de entrenamiento.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X