Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Desafío: Ajuste de Hiperparámetros con RandomizedSearchCV | Modelado
Introducción al ML con Scikit-learn

bookDesafí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.

Tarea

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.

  1. Definir la cuadrícula de parámetros llamada param_grid con los valores deseados para n_neighbors, weights y p.
  2. Inicializar un objeto RandomizedSearchCV usando la cuadrícula de parámetros definida y establecer n_iter=20.
  3. Inicializar un objeto GridSearchCV utilizando la misma cuadrícula de parámetros.
  4. Entrenar ambos objetos de búsqueda en el conjunto de datos utilizando el método .fit(X, y).
  5. Imprimir el mejor estimador de la búsqueda en cuadrícula usando .best_estimator_.
  6. Imprimir la mejor puntuación de validación cruzada de la búsqueda aleatoria usando .best_score_.

Solución

Note
Nota

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.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 8
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

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?

close

Awesome!

Completion rate improved to 3.13

bookDesafí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.

Tarea

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.

  1. Definir la cuadrícula de parámetros llamada param_grid con los valores deseados para n_neighbors, weights y p.
  2. Inicializar un objeto RandomizedSearchCV usando la cuadrícula de parámetros definida y establecer n_iter=20.
  3. Inicializar un objeto GridSearchCV utilizando la misma cuadrícula de parámetros.
  4. Entrenar ambos objetos de búsqueda en el conjunto de datos utilizando el método .fit(X, y).
  5. Imprimir el mejor estimador de la búsqueda en cuadrícula usando .best_estimator_.
  6. Imprimir la mejor puntuación de validación cruzada de la búsqueda aleatoria usando .best_score_.

Solución

Note
Nota

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.

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 8
single

single

some-alt