¿Por qué los modelos que funcionan mejor durante el entrenamiento dan resultados más pobres durante la implementación?

Este es un problema general de los algoritmos de aprendizaje automático (ML) como ya se ha indicado en la mayoría de las respuestas. El problema del sobreajuste puede afectar su modelo durante la implementación, especialmente si sus conjuntos de datos no son una buena representación de la tarea real que el sistema tiene la tarea de resolver en la práctica.

Sin embargo, en ML también es un juego de compensación entre sobreajuste y falta de ajuste al tratar de tener un buen rendimiento de generalización. Normalmente, un modelo no equipado tiene un buen error de generalización (la brecha entre el entrenamiento y el error de validación) por eso se desempeñó mejor. Se puede llegar al mejor modelo haciendo suficientes pruebas para encontrar el mejor lugar entre un modelo sobreajustado con alta precisión pero con un alto error de generalización y un modelo con suficiente precisión pero con un buen error de generalización.

También puede recopilar los datos de los casos de falla durante la implementación. Si el modelo está en manos de usuarios típicos, esto viene con problemas de privacidad, por lo que depende de los datos de los que estamos hablando aquí. Si los datos son confidenciales, solicite permiso para recopilar esos datos, luego intente agregar tales ejemplos a su conjunto de datos e ingenie los modelos mientras también los evalúa en tales datos de casos de uso, especialmente aquellos que engañaron mucho a los algoritmos, los ejemplos “difíciles”.

E intente utilizar la validación cruzada para evaluar sus modelos. Podría darle una mejor indicación del rendimiento del modelo.

Espero que esto ayude.

Parece que tienes un problema con tus conjuntos de datos.

Los conjuntos de entrenamiento y prueba deben reflejar el problema real. Si el problema real (los datos que encuentra durante la implementación) es sustancialmente diferente, entonces no hay razón para esperar que el modelo entrenado por el algoritmo A funcione mejor que el modelo del algoritmo B o viceversa.

Entonces, como suele ser el caso, todo se reduce a uno de los proverbios informáticos más antiguos: “basura, basura” (GIGO en resumen).

Este podría ser un caso clásico de sobreajuste. No sé el problema exacto que está resolviendo, pero el 98% de precisión parece muy alto para cualquier modelo. Parece que el modelo se ajustó demasiado para dar excelentes resultados para el conjunto de entrenamiento. No ha compartido si realizó una prueba fuera de la muestra y cuáles son los resultados de la misma. Pero los resultados de la implementación son, en cierto modo, pruebas fuera de muestra. Y demuestran que el modelo estaba sobreajustado.

Para reducir el sobreajuste:

  1. usa más datos para entrenar
  2. reducir el número de factores
  3. reducir el número de nodos ocultos
  4. reducir el número de capas
  5. combinar múltiples modelos (usando un método de conjunto)
  6. siempre realice pruebas fuera de la muestra en datos de tamaño significativo