Optimización de hiperparámetros (búsqueda en cuadrícula) en scikit-learn
GridSerachCV se proporciona en scikit-learn.model_selection para implementar la búsqueda en cuadrícula. Para crear una búsqueda de cuadrícula, se deben especificar los siguientes elementos:
Los parámetros correspondientes en GridSearchCV son
También hay parámetros disponibles para ajustar el rendimiento, como n_jobs y pre_dispatch, que especificar el número de trabajos de cálculos paralelos.
GridSearchCV implementa los métodos de ajuste y puntuación, que son métodos propios del alumno y también se pueden llamar directamente a través de GridSeachCV. A través de atributos como best_estimator, best_score y best_params, se puede obtener información como los mejores parámetros después del entrenamiento.
Además de la búsqueda transversal, también puede utilizar la búsqueda aleatoria RandomizedSearchCV en sklearn.model_selection.
Sus parámetros y uso son similares a GridSeachCV, pero no recorre en iteración todas las combinaciones posibles de hiperparámetros. En cambio, genera un número específico de combinaciones de hiperparámetros basadas en el parámetro n_iter y las compara.
Para situaciones en las que hay muchos hiperparámetros y no se admite el recorrido exhaustivo, se pueden utilizar métodos de búsqueda heurística para ajustar los parámetros.
Además de los métodos de búsqueda de cuadrícula ergódica y estocástica, scikit-learn también proporciona métodos de combinación de hiperparámetros ergódicos y estocásticos. Solo se devuelve el conjunto de combinaciones de hiperparámetros.
El método ParameterGrid genera todas las combinaciones de hiperparámetros. y puede ser leído por otras funciones.
ParameterSampler realiza combinaciones aleatorias. En lugar de iterar a través de todas las combinaciones de hiperparámetros, utiliza un muestreo aleatorio para combinar hiperparámetros y genera las combinaciones n_iter especificadas para iterar.
Ambos métodos solo generan combinaciones de hiperparámetros que se pueden usar cuando se usan otros métodos de ajuste en lugar de los métodos GridSeachCV o RandomizedSearchCV.
También hay muchos métodos de validación cruzada específicos del modelo en scikit-learn que pueden mejorar la eficiencia de la validación.
Estos métodos incluyen ElasticNetCV, LassoCV, RidgeCV, LogisticRegressionCV, etc.