Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Desafío: Elegir el Mejor Valor de K | Sección
Fundamentos del Aprendizaje Supervisado

bookDesafío: Elegir el Mejor Valor de K

Como se mostró en los capítulos anteriores, las predicciones del modelo pueden variar dependiendo del valor de k (el número de vecinos). Al construir un modelo k-NN, es importante elegir el valor de k que proporcione el mejor rendimiento.

Un enfoque común es utilizar la validación cruzada para evaluar el rendimiento del modelo. Se puede ejecutar un ciclo y calcular las puntuaciones de validación cruzada para un rango de valores de k, y luego seleccionar aquel con la puntuación más alta. Este es el método más utilizado.

Para realizar esto, sklearn ofrece una herramienta conveniente: la clase GridSearchCV.

Constructor:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — el objeto del modelo;
  • param_grid — diccionario con los valores de los parámetros a probar;
  • scoring — la métrica utilizada para la puntuación de validación cruzada;
  • cv — el número de particiones (5 por defecto);

Métodos:

  • fit(X, y) — entrena los modelos usando X, y;
  • predict(X) — predice la clase para X;
  • score(X, y) — devuelve la precisión para el conjunto X, y;

Atributos:

  • best_estimator_ — objeto del modelo con la puntuación más alta;
  • best_score_ — la puntuación del best_estimator_.

El parámetro param_grid recibe un diccionario donde las claves son los nombres de los parámetros y los valores son listas de opciones a probar. Por ejemplo, para probar valores de 1 a 99 para n_neighbors, se puede escribir:

param_grid = {'n_neighbors': range(1, 100)}

Al llamar al método .fit(X, y) en el objeto GridSearchCV, se buscarán los mejores parámetros en la cuadrícula y luego se reentrenará el modelo en todo el conjunto de datos usando esos mejores parámetros.

Se puede acceder a la mejor puntuación usando el atributo .best_score_ y hacer predicciones con el modelo optimizado usando el método .predict(). De manera similar, se puede recuperar el mejor modelo utilizando el atributo .best_estimator_.

Tarea

Swipe to start coding

Se proporciona el conjunto de datos de calificaciones de Star Wars almacenado como un DataFrame en la variable df.

  • Inicializar param_grid como un diccionario que contenga el parámetro n_neighbors con los valores [3, 9, 18, 27].
  • Crear un objeto GridSearchCV utilizando param_grid con validación cruzada de 4 particiones, entrenarlo y almacenarlo en la variable grid_search.
  • Recuperar el mejor modelo de grid_search y almacenarlo en la variable best_model.
  • Recuperar la puntuación del mejor modelo y almacenarla en la variable best_score.

Solución

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 20
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

close

bookDesafío: Elegir el Mejor Valor de K

Desliza para mostrar el menú

Como se mostró en los capítulos anteriores, las predicciones del modelo pueden variar dependiendo del valor de k (el número de vecinos). Al construir un modelo k-NN, es importante elegir el valor de k que proporcione el mejor rendimiento.

Un enfoque común es utilizar la validación cruzada para evaluar el rendimiento del modelo. Se puede ejecutar un ciclo y calcular las puntuaciones de validación cruzada para un rango de valores de k, y luego seleccionar aquel con la puntuación más alta. Este es el método más utilizado.

Para realizar esto, sklearn ofrece una herramienta conveniente: la clase GridSearchCV.

Constructor:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — el objeto del modelo;
  • param_grid — diccionario con los valores de los parámetros a probar;
  • scoring — la métrica utilizada para la puntuación de validación cruzada;
  • cv — el número de particiones (5 por defecto);

Métodos:

  • fit(X, y) — entrena los modelos usando X, y;
  • predict(X) — predice la clase para X;
  • score(X, y) — devuelve la precisión para el conjunto X, y;

Atributos:

  • best_estimator_ — objeto del modelo con la puntuación más alta;
  • best_score_ — la puntuación del best_estimator_.

El parámetro param_grid recibe un diccionario donde las claves son los nombres de los parámetros y los valores son listas de opciones a probar. Por ejemplo, para probar valores de 1 a 99 para n_neighbors, se puede escribir:

param_grid = {'n_neighbors': range(1, 100)}

Al llamar al método .fit(X, y) en el objeto GridSearchCV, se buscarán los mejores parámetros en la cuadrícula y luego se reentrenará el modelo en todo el conjunto de datos usando esos mejores parámetros.

Se puede acceder a la mejor puntuación usando el atributo .best_score_ y hacer predicciones con el modelo optimizado usando el método .predict(). De manera similar, se puede recuperar el mejor modelo utilizando el atributo .best_estimator_.

Tarea

Swipe to start coding

Se proporciona el conjunto de datos de calificaciones de Star Wars almacenado como un DataFrame en la variable df.

  • Inicializar param_grid como un diccionario que contenga el parámetro n_neighbors con los valores [3, 9, 18, 27].
  • Crear un objeto GridSearchCV utilizando param_grid con validación cruzada de 4 particiones, entrenarlo y almacenarlo en la variable grid_search.
  • Recuperar el mejor modelo de grid_search y almacenarlo en la variable best_model.
  • Recuperar la puntuación del mejor modelo y almacenarla en la variable best_score.

Solución

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 1. Capítulo 20
single

single

some-alt