¿Cómo debería abordar la mejora de mi algoritmo, si mi conjunto de pruebas arroja malos resultados?

La construcción de modelos performantes es una espiral continua hacia la mejora del rendimiento de predicción que implica volver a visitar todos los pasos que condujeron al resultado:

  • ordenar los datos y comprender los datos
  • investigar a los alumnos que son aplicables a los tipos de datos
  • dividir datos en trenes y conjuntos de prueba: asegúrese de tener una división representativa (barajado, estratificación, etc.)
  • si es necesario, asegúrese de realizar la normalización de datos después de la división en cada conjunto de datos; hacer esto antes de la división induciría información del conjunto de trenes al conjunto de prueba y viceversa
  • no toque el equipo de prueba bajo ninguna circunstancia
  • si tiene suficientes datos, divida su conjunto de trenes en conjuntos de trenes y validación (plegado en k); si no, use la técnica de vivir uno afuera
  • cree y valide de forma cruzada sus modelos utilizando el conjunto de datos del tren. Seleccione el modelo (s) que desea probar
    • Si el ajuste del entrenamiento es consistentemente malo, puede que no haya datos lo suficientemente buenos o adecuados para la tarea: tamaño, calidad del predictor, linealidad, etc. Comprenda los datos (¡otra vez!), busque patrones, separe los datos, kernelize, diseñe nuevas características, etc.
    • si el ajuste de aprendizaje es demasiado bueno, espere sorpresas desagradables en el conjunto de prueba (varianza – compensación de sesgo).

¡Espero que esto responda parcialmente la pregunta!

Los malos resultados en la parte de prueba significan que su algoritmo ya está sobreajustado. Si usa su prueba para mejorar su algoritmo, está usando la prueba como una segunda validación cruzada.

El enfoque normal es cambiar los hiperparámetros hasta que obtenga mejores resultados o cambie el algoritmo que está utilizando.

No entrenas al modelo en el set de prueba. El hecho de que su modelo no se generalice a los datos de la prueba ya significa que se ha sobreajustado a los datos de entrenamiento. Básicamente modifique los hiperparámetros y vuelva a entrenar el modelo. También puede intentar utilizar, por ejemplo, diferentes porcentajes de abandono para la regularización para evitar el problema de sobreajuste.

More Interesting

Cómo reducir los componentes fuertemente conectados en nodos únicos de manera eficiente si estoy usando una representación de lista de adyacencia

¿Cuánta codificación necesito saber antes de comenzar con los algoritmos?

Creamos un algoritmo de software único para medir / cuantificar las diferencias de las imágenes a escala nano-planetaria. ¿Cómo monetizamos esto?

¿Hay alguna razón para almacenar cosas en una lista en lugar de un árbol?

¿Qué idioma es mejor para comprender la importancia de las estructuras de datos?

¿Puedes explicar la prueba del postulado de Bertrand a un completo idiota?

¿Hay algún algoritmo de ordenación que funcione en el orden de n?

¿Cuál es la mejor manera de implementar un iterador para un BST?

¿Cómo funciona el algoritmo de búsqueda de ruta de StarCraft II?

¿Cuántas conjeturas necesitarías para determinar el número entre 1 y 100 en el peor de los casos usando una búsqueda lineal?

Dado N monedas para dos jugadores que juegan un juego. Cada jugador puede elegir 1 o 2 monedas en un turno. El jugador que recoge las últimas monedas gana. Si juegan de manera óptima, ¿qué jugador ganará el juego?

Cómo insertar un valor al final de una lista vinculada

¿Qué recurso contiene el mayor conjunto de algoritmos?

Se le da una matriz de números MxN, con la propiedad de que los números aumentan a medida que avanza por cada columna y hacia la derecha en cada fila. ¿Cómo puede verificar eficientemente si un número dado está en la matriz?

¿Cómo ayuda la selección de estructuras de datos apropiadas para diseñar mejores algoritmos?