Por datos enteros me refiero a tren + prueba + validación
Una vez que haya arreglado mi hiperparámetro con los datos de validación y elija el modelo con los datos de la prueba, ¿no sería mejor tener un modelo entrenado en todos los datos para que los parámetros estén mejor entrenados en lugar de tener el modelo entrenado solo datos del tren
machine-learning
Apoorva Abhishekh
fuente
fuente
Respuestas:
La pregunta está bajo una suposición errónea. Muchas personas hacen lo que usted dice que "no pueden" hacer.
De hecho, la implementación de búsqueda de cuadrícula en el paquete sklearn ampliamente implementado hace exactamente eso. A menos
refit=False
que vuelva a entrenar el modelo final utilizando todos los datos.Creo que para algunos hiperparámetros esto podría no ser muy deseable, ya que son relativos al volumen de datos. Por ejemplo, considere la
min_samples_leaf
táctica de poda previa para un árbol de decisión . Si tiene más datos, la poda previa puede no funcionar como lo desea.Pero, de nuevo, la mayoría de las personas de hecho se vuelven a entrenar utilizando todos los datos después de la validación cruzada, para que terminen con el mejor modelo posible.
Anexo: @NeilSlater dice a continuación que algunas personas realizan una suspensión además del CV. En otras palabras, tienen una división de prueba de entrenamiento y luego realizan la selección del modelo en el entrenamiento. Según él, vuelven a entrenar utilizando la división del conjunto de entrenamiento original, pero no el conjunto de prueba. El conjunto de prueba se utiliza para realizar una estimación final del modelo. Personalmente, veo tres fallas en esto: (a) no resuelve el problema que mencioné, ya que algunos hiperparámetros dependen del volumen de entrenamiento ya que de todos modos vuelves a entrenar, (b) cuando pruebas muchos modelos, prefiero más sofisticados métodos como la validación cruzada anidada para que no se desperdicien datos, y (c) la retención es un método horrible para inferir cómo se generalizará un modelo cuando tenga pocos datos.
fuente
refit
opción de la función GridSearchCV. No se ajusta para incluir datos de prueba retenidos (ni siquiera puede ver esos datos).Sí tu puedes.
Como se supone que los datos de prueba provienen de una distribución similar para entrenar datos, no romperá su modelo. Si ha entrenado el modelo correctamente, no notará ningún cambio significativo (excepto una mejor métrica de precisión en los datos de prueba / validación anteriores).
Pero es raramente cierto que los datos de prueba provienen precisamente de la misma distribución que los datos del tren, por lo que en el caso de una aplicación real puede obtener una mejor generalización de su modelo.
fuente
La respuesta a esta pregunta depende del algoritmo de entrenamiento (tecnología) que utilice. Por ejemplo, he visto algunos enfoques en la clasificación de conjuntos donde los conjuntos de entrenamiento y validación (pero no pruebas) se combinan al final. Es muy importante saber que incluso la validación se usa principalmente para decidir los hiperparámetros, algunos de estos hiperparámetros pueden ser una función de los datos utilizados para el entrenamiento. Por ejemplo, en la validación de DNN solíamos saber cuándo parar, ya que el sobreajuste puede ocurrir como resultado de seguir ajustando los parámetros (pesos) de la red, necesitamos una forma de saber cuándo parar. Sin el conjunto de validación, caminará ciegamente en el proceso de capacitación. Por otro lado, si usa exactamente el mismo número de iteraciones que se especificó anteriormente, existe un alto problema que no obtendrá de estas muestras adicionales. El conjunto de prueba no debe tocarse en absoluto, como se indicó anteriormente sin el conjunto de prueba, no tendrá ningún método para evaluar su modelo. Esto es un juego de azar, NO PUEDE entregar ningún modelo o solución sin la estimación de su precisión en la verdadera distribución de datos (que representa los datos de prueba).
fuente