Aquí encontrará una descripción general del proceso de optimización de hiperparámetros en scikit-learn .
La búsqueda exhaustiva de la cuadrícula encontrará el conjunto óptimo de hiperparámetros para un modelo. La desventaja es que la búsqueda exhaustiva en la red es lenta.
La búsqueda aleatoria es más rápida que la búsqueda de cuadrícula, pero tiene una varianza innecesariamente alta.
También hay estrategias adicionales en otros paquetes, incluyendo scikit-Optimize , auto-sklearn y scikit-hyperband .
¿Cuál es el método más eficiente (encontrar rápidamente parámetros razonablemente eficaces) para la optimización de hiperparámetros en scikit-learn?
Idealmente, me gustaría trabajar ejemplos de código con puntos de referencia.
Respuestas:
La optimización no es mi campo, pero que yo sepa, la optimización de hiperparámetros eficiente y efectiva en estos días gira en torno a la construcción de un modelo sustituto. A medida que los modelos aumentan en complejidad, se convierten en una caja negra más opaca. Este es el caso de las redes neuronales profundas y de los árboles presumiblemente complejos también. Un modelo sustituto intenta hacer retroceder el espacio subyacente dentro de ese cuadro negro. Basado en una variedad de técnicas de muestreo, sondean el espacio de hiperparámetros e intentan construir una función que represente el verdadero espacio de hiperparámetros subyacente.
La optimización bayesiana se centra en el modelo sustituto y la forma en que se construye este modelo es crucial para BO. También es crucial para BO elegir una buena función de pérdida.
Creo que el rendimiento entre la búsqueda aleatoria y la búsqueda bayesiana varía de un conjunto de datos a otro y de un modelo a otro. Bergstra y Bengio (2012) hicieron un fuerte argumento para la búsqueda aleatoria sobre la búsqueda de cuadrícula. Shahriari y col. (2016) hacen un caso fuerte para BO. Las estrategias de Hiperbanda basadas en modelos pueden tener un mejor rendimiento que BO, especialmente para grandes dimensiones, sin embargo, es puramente exploración, no explotación. Esto puede resultar fácilmente en una parada demasiado temprana. Sin embargo, se han realizado esfuerzos para combinar Hyperband y BO .
He tenido un buen éxito scikit-optimizar, a pesar de que hay bastante poco implementado. Es fácil crear prototipos y puede interactuar fácilmente con scikit-learn.
Bergstra, J. y Bengio, Y. (2012). Búsqueda aleatoria para la optimización de hiperparámetros. Journal of Machine Learning Research, 13 (febrero), 281-305.
Shahriari, B., Swersky, K., Wang, Z., Adams, RP y De Freitas, N. (2016). Sacar al ser humano del círculo: una revisión de la optimización bayesiana. Actas del IEEE, 104 (1), 148-175.
fuente
Puedes echar un vistazo a auto-sklearn . Es un kit de herramientas de aprendizaje automático que es una extensión directa de scikit-learn.
fuente