Búsqueda de cuadrícula CV en Sklearn

Búsqueda de cuadrícula CV en Sklearn

“Las variables de un modelo de aprendizaje automático que determinan cómo se ajustarán los parámetros se conocen como hiperparámetros. El problema de seleccionar un grupo de hiperparámetros ideales para un algoritmo de aprendizaje se conoce como ajuste de hiperparameter. Los hiperparámetros se pueden configurar manual o automáticamente. Hay numerosos algoritmos disponibles para este ajuste. Uno de esos métodos, GridSearchCV, se cubrirá en este blog."

¿Qué son los hiperparámetros??

Podemos ajustar los parámetros del modelo utilizando los datos existentes para entrenar un modelo. Otra clase de parámetros no se puede aprender de inmediato a través de la capacitación de rutina. Estos parámetros representan las características de "nivel superior" del modelo, como la complejidad y la tasa de aprendizaje. Hyperparameters es el término para ellos. Por lo general, los hiperparámetros se ajustan antes de que comience el entrenamiento.

¿Qué es la búsqueda de cuadrícula CV??

La búsqueda en la cuadrícula evalúa el rendimiento para cada posible combinación de los hiperparámetros y sus valores, elige la combinación con el mejor rendimiento y toma esa combinación como su punto de partida. Con tantos hiperparámetros involucrados, el procesamiento se vuelve más tiempo y costoso. La validación cruzada se realiza en GridSearchCV además de la búsqueda de cuadrícula. Se emplea la validación cruzada mientras el modelo está capacitado para validar los resultados en un conjunto de datos.

Búsqueda de cuadrícula en dos hiperparámetros (Fuente: Wikipedia)

¿Cómo funciona la búsqueda de cuadrícula??

En su forma más básica, la búsqueda de cuadrícula es un método que utiliza la fuerza bruta para estimar los hiperparámetros. Digamos que tiene K hiperparámetros, y hay valores posibles para cada uno de ellos. Tomar un producto cartesiano de estos valores potenciales es esencialmente lo que es la búsqueda de cuadrícula. Aunque la búsqueda de la red puede parecer altamente ineficiente, se puede acelerar utilizando procesamiento paralelo.

Implementación de la búsqueda de cuadrícula en Sklearn

# Importar las bibliotecas y clases
de Sklearn Import SVM, conjuntos de datos
de Sklearn.model_selection import gridSearchCV
# Cargando el conjunto de datos de Iris
datos = conjuntos de datos.load_iris ()
# Especificar el espacio de parámetros y el algoritmo
parámetros = 'kernel' :( 'lineal', 'rbf'), 'c': [5, 20]
# Crear el modelo
svc = svm.Svc ()
# Creación de instancia de GridSearch
CLF = GridSearchCV (SVC, Parámetros)
# ajustar el modelo
Imprimir (CLF.ajuste (datos.datos, datos.objetivo))
# Impresión de los resultados
Imprimir (CLF.cv_results_.llaves())

Producción

GridSearchCV (estimador = svc (),
param_grid = 'c': [5, 20], 'kernel': ('lineal', 'rbf'))
dict_keys(['mean_fit_time', 'std_fit_time', 'mean_score_time', 'std_score_time', 'param_C', 'param_kernel', 'params', 'split0_test_score', 'split1_test_score', 'split2_test_score', 'split3_test_score', 'split4_test_score' , 'Mean_test_score', 'std_test_score', 'rank_test_score'])

Conclusión

Este artículo habló sobre cómo sintonizar los hiperparámetros utilizando GridSearchCV y su implementación. En el aprendizaje automático, los hiperparámetros son parámetros que el usuario define directamente para regular el proceso de aprendizaje. Estos hiperparámetros se emplean para mejorar el proceso de aprendizaje del modelo. La sintonización de hiperparameter implica determinar los valores ideales para varios parámetros. Sklearn ofrece la clase "Selección de modo", que nos permite generar instancias de búsqueda de cuadrícula y usarlas para nuestros propósitos.