Desafío: Ajuste de Hiperparámetros con RandomizedSearchCV
El principio de RandomizedSearchCV es similar al de GridSearchCV, pero en lugar de probar todas las combinaciones posibles, evalúa solo un subconjunto muestreado aleatoriamente.
Por ejemplo, el siguiente param_grid contiene 100 combinaciones:
param_grid = {
'n_neighbors': [1, 3, 5, 7, 9, 12, 15, 17, 20, 25],
'weights': ['distance', 'uniform'],
'p': [1, 2, 3, 4, 5]
}
GridSearchCV probaría las 100 combinaciones, lo cual es muy costoso en tiempo. RandomizedSearchCV puede, en cambio, evaluar un subconjunto más pequeño, por ejemplo, 20 combinaciones elegidas aleatoriamente. Esto reduce el tiempo de cómputo y generalmente produce resultados cercanos a los mejores.
El número de combinaciones a probar se controla mediante el argumento n_iter (el valor predeterminado es 10). Por lo demás, el uso es el mismo que con GridSearchCV.
Swipe to start coding
Se proporciona un conjunto de datos de pingüinos preprocesado y listo para el entrenamiento del modelo.
El objetivo es ajustar los hiperparámetros de un modelo KNeighborsClassifier utilizando tanto métodos de búsqueda en cuadrícula como búsqueda aleatoria.
- Definir la cuadrícula de parámetros llamada
param_gridcon los valores deseados paran_neighbors,weightsyp. - Inicializar un objeto
RandomizedSearchCVusando la cuadrícula de parámetros definida y establecern_iter=20. - Inicializar un objeto
GridSearchCVutilizando la misma cuadrícula de parámetros. - Entrenar ambos objetos de búsqueda en el conjunto de datos utilizando el método
.fit(X, y). - Imprimir el mejor estimador de la búsqueda en cuadrícula usando
.best_estimator_. - Imprimir la mejor puntuación de validación cruzada de la búsqueda aleatoria usando
.best_score_.
Solución
Puedes intentar ejecutar el código varias veces. Observa la diferencia entre las dos puntuaciones. A veces, las puntuaciones pueden ser iguales debido a la presencia de los mejores parámetros entre las combinaciones muestreadas por RandomizedSearchCV.
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Can you explain when to use RandomizedSearchCV instead of GridSearchCV?
How do I choose the right value for n_iter in RandomizedSearchCV?
What are the main advantages and disadvantages of RandomizedSearchCV?
Awesome!
Completion rate improved to 3.13
Desafío: Ajuste de Hiperparámetros con RandomizedSearchCV
Desliza para mostrar el menú
El principio de RandomizedSearchCV es similar al de GridSearchCV, pero en lugar de probar todas las combinaciones posibles, evalúa solo un subconjunto muestreado aleatoriamente.
Por ejemplo, el siguiente param_grid contiene 100 combinaciones:
param_grid = {
'n_neighbors': [1, 3, 5, 7, 9, 12, 15, 17, 20, 25],
'weights': ['distance', 'uniform'],
'p': [1, 2, 3, 4, 5]
}
GridSearchCV probaría las 100 combinaciones, lo cual es muy costoso en tiempo. RandomizedSearchCV puede, en cambio, evaluar un subconjunto más pequeño, por ejemplo, 20 combinaciones elegidas aleatoriamente. Esto reduce el tiempo de cómputo y generalmente produce resultados cercanos a los mejores.
El número de combinaciones a probar se controla mediante el argumento n_iter (el valor predeterminado es 10). Por lo demás, el uso es el mismo que con GridSearchCV.
Swipe to start coding
Se proporciona un conjunto de datos de pingüinos preprocesado y listo para el entrenamiento del modelo.
El objetivo es ajustar los hiperparámetros de un modelo KNeighborsClassifier utilizando tanto métodos de búsqueda en cuadrícula como búsqueda aleatoria.
- Definir la cuadrícula de parámetros llamada
param_gridcon los valores deseados paran_neighbors,weightsyp. - Inicializar un objeto
RandomizedSearchCVusando la cuadrícula de parámetros definida y establecern_iter=20. - Inicializar un objeto
GridSearchCVutilizando la misma cuadrícula de parámetros. - Entrenar ambos objetos de búsqueda en el conjunto de datos utilizando el método
.fit(X, y). - Imprimir el mejor estimador de la búsqueda en cuadrícula usando
.best_estimator_. - Imprimir la mejor puntuación de validación cruzada de la búsqueda aleatoria usando
.best_score_.
Solución
Puedes intentar ejecutar el código varias veces. Observa la diferencia entre las dos puntuaciones. A veces, las puntuaciones pueden ser iguales debido a la presencia de los mejores parámetros entre las combinaciones muestreadas por RandomizedSearchCV.
¡Gracias por tus comentarios!
single