Actualmente estoy trabajando en un problema que compara el rendimiento de tres algoritmos de aprendizaje automático diferentes en el mismo conjunto de datos. Dividí el conjunto de datos en 70/30 conjuntos de entrenamiento/prueba y luego realicé una búsqueda en cuadrícula de los mejores parámetros de cada algoritmo usando GridSearchCV y X_train, y_train .
Primera pregunta, ¿se supone que debo realizar una búsqueda de cuadrícula en el conjunto de entrenamiento o se supone que debe estar en todo el conjunto de datos?
Segunda pregunta, sé que GridSearchCV usa K-fold en su implementación, ¿significa que realicé una validación cruzada si usé el mismo X_train, y_train para los tres algoritmos que comparo en GridSearchCV?
Cualquier respuesta sería apreciada, gracias.
Todos los estimadores en scikit donde el nombre termina con CV realizan una validación cruzada. Pero debe mantener un conjunto de prueba separado para medir el rendimiento.
Por lo tanto, debe dividir todos sus datos para entrenar y probar. Olvídese de estos datos de prueba por un tiempo.
Y luego pase estos datos del tren solo a la búsqueda de cuadrícula. GridSearch dividirá estos datos de tren aún más en tren y prueba para ajustar los hiperparámetros que se le pasan. Y finalmente ajuste el modelo en todos los datos del tren con los mejores parámetros encontrados.
Ahora necesita probar este modelo con los datos de prueba que guardó al principio. Esto le dará el rendimiento del modelo casi en el mundo real.
Si utiliza todos los datos en GridSearchCV, entonces habría una fuga de datos de prueba en el ajuste de parámetros y, por lo tanto, es posible que el modelo final no funcione tan bien con los datos invisibles más nuevos.
Puede ver mis otras respuestas que describen GridSearch con más detalle:
Sí, GridSearchCV realiza una validación cruzada. Si entiendo el concepto correctamente, desea mantener parte de su conjunto de datos oculto para el modelo para probarlo.
Entonces, entrena sus modelos contra el conjunto de datos de entrenamiento y los prueba en un conjunto de datos de prueba.
Aquí estaba haciendo casi lo mismo , es posible que desee comprobarlo...