Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende La Falla de GridSearchCV | Modelado
Introducción al Aprendizaje Automático con Python

bookLa Falla de GridSearchCV

Antes de utilizar GridSearchCV, tenga en cuenta que KNeighborsClassifier posee más hiperparámetros además de n_neighbors. Dos de los más importantes son weights y p.

Pesos

Por defecto, el clasificador utiliza weights='uniform', lo que significa que todos los vecinos k votan de manera equitativa. Configurar weights='distance' otorga mayor influencia a los vecinos más cercanos, lo que a menudo mejora las predicciones cuando los puntos cercanos son más relevantes.

P

El parámetro p controla la métrica de distancia:

  • p=1: distancia Manhattan;
  • p=2: distancia Euclidiana.

Un parámetro p puede tomar cualquier entero positivo. Existen muchas distancias diferentes, pero son más difíciles de visualizar que p=1 o p=2.

Note
Nota

No se preocupe si los detalles de weights o p no son claros. Se presentan simplemente para mostrar que existe más de un hiperparámetro que puede influir en las predicciones del modelo. Considérelos como ejemplos de hiperparámetros que pueden ajustarse.

Anteriormente, solo se ajustaba n_neighbors. Para buscar entre los tres hiperparámetros, utilice:

param_grid = {
    'n_neighbors': [1, 3, 5, 7],
    'weights': ['distance', 'uniform'],
    'p': [1, 2]
}

GridSearchCV prueba todas las combinaciones posibles para encontrar la mejor, por lo que intentará todas estas:

Una cuadrícula más grande como:

param_grid = {
    'n_neighbors': [...],
    'weights': ['distance', 'uniform'],
    'p': [1, 2, 3, 4, 5]
}

crea 100 combinaciones. Con validación cruzada de 5 particiones, el modelo se entrena 500 veces. Esto es adecuado para conjuntos de datos pequeños, pero para conjuntos más grandes se vuelve demasiado lento.

Para reducir el tiempo de cómputo, RandomizedSearchCV prueba solo un subconjunto aleatorio de combinaciones, generalmente encontrando resultados sólidos mucho más rápido que una búsqueda en cuadrícula completa.

question mark

El principal problema de GridSearchCV es que prueba todas las combinaciones posibles (de lo que se especifica en param_grid), lo que puede llevar mucho tiempo. ¿Es correcta esta afirmación?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 7

Pregunte a AI

expand

Pregunte a AI

ChatGPT

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

bookLa Falla de GridSearchCV

Desliza para mostrar el menú

Antes de utilizar GridSearchCV, tenga en cuenta que KNeighborsClassifier posee más hiperparámetros además de n_neighbors. Dos de los más importantes son weights y p.

Pesos

Por defecto, el clasificador utiliza weights='uniform', lo que significa que todos los vecinos k votan de manera equitativa. Configurar weights='distance' otorga mayor influencia a los vecinos más cercanos, lo que a menudo mejora las predicciones cuando los puntos cercanos son más relevantes.

P

El parámetro p controla la métrica de distancia:

  • p=1: distancia Manhattan;
  • p=2: distancia Euclidiana.

Un parámetro p puede tomar cualquier entero positivo. Existen muchas distancias diferentes, pero son más difíciles de visualizar que p=1 o p=2.

Note
Nota

No se preocupe si los detalles de weights o p no son claros. Se presentan simplemente para mostrar que existe más de un hiperparámetro que puede influir en las predicciones del modelo. Considérelos como ejemplos de hiperparámetros que pueden ajustarse.

Anteriormente, solo se ajustaba n_neighbors. Para buscar entre los tres hiperparámetros, utilice:

param_grid = {
    'n_neighbors': [1, 3, 5, 7],
    'weights': ['distance', 'uniform'],
    'p': [1, 2]
}

GridSearchCV prueba todas las combinaciones posibles para encontrar la mejor, por lo que intentará todas estas:

Una cuadrícula más grande como:

param_grid = {
    'n_neighbors': [...],
    'weights': ['distance', 'uniform'],
    'p': [1, 2, 3, 4, 5]
}

crea 100 combinaciones. Con validación cruzada de 5 particiones, el modelo se entrena 500 veces. Esto es adecuado para conjuntos de datos pequeños, pero para conjuntos más grandes se vuelve demasiado lento.

Para reducir el tiempo de cómputo, RandomizedSearchCV prueba solo un subconjunto aleatorio de combinaciones, generalmente encontrando resultados sólidos mucho más rápido que una búsqueda en cuadrícula completa.

question mark

El principal problema de GridSearchCV es que prueba todas las combinaciones posibles (de lo que se especifica en param_grid), lo que puede llevar mucho tiempo. ¿Es correcta esta afirmación?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 7
some-alt