Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Búsqueda en cuadrícula con validación cruzada | Modelado
Introducción al ML con Scikit-learn

bookBúsqueda en cuadrícula con validación cruzada

Ahora es momento de mejorar el rendimiento del modelo identificando los hiperparámetros más adecuados.

Este proceso se conoce como ajuste de hiperparámetros. El enfoque estándar consiste en probar diferentes valores de hiperparámetros, calcular la puntuación de validación cruzada para cada uno y seleccionar el valor que produce la mayor puntuación.

Este proceso puede realizarse utilizando la clase GridSearchCV del módulo sklearn.model_selection.

Al crear un objeto GridSearchCV, se debe proporcionar el modelo y la rejilla de parámetros (param_grid), y opcionalmente especificar la métrica de evaluación y el número de particiones. La rejilla de parámetros es un diccionario de valores de hiperparámetros a probar. Por ejemplo:

param_grid = {'n_neighbors': [1, 3, 5, 7]}

Esta configuración evalúa el modelo con 1, 3, 5 y 7 vecinos.

Después de inicializar GridSearchCV, se entrena con .fit(X, y).

  • El mejor modelo (mayor puntuación de validación cruzada) se puede acceder mediante .best_estimator_.
  • La puntuación de validación cruzada correspondiente se puede consultar a través de .best_score_.
123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCV df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Create the param_grid and initialize GridSearchCV object param_grid = {'n_neighbors': [1,3,5,7,9]} grid_search = GridSearchCV(KNeighborsClassifier(), param_grid) # Train the GridSearchCV object. During training it finds the best parameters grid_search.fit(X, y) # Print the best estimator and its cross-validation score print(grid_search.best_estimator_) print(grid_search.best_score_)
copy

El siguiente paso consiste en tomar el best_estimator_ y entrenarlo con todo el conjunto de datos, ya que ya se ha identificado que tiene los mejores parámetros. Este paso se realiza automáticamente mediante GridSearchCV.

Como resultado, el propio objeto grid_search se convierte en un modelo entrenado con los parámetros óptimos. Puede utilizarse directamente para predicción y evaluación a través de los métodos .predict() y .score().

123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCV df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Create the param_grid and initialize GridSearchCV object param_grid = {'n_neighbors': [1,3,5,7,9]} grid_search = GridSearchCV(KNeighborsClassifier(), param_grid) # Train the GridSearchCV object. During training it finds the best parameters grid_search.fit(X, y) # Evaluate the grid_search on the training set # It is done only to show that .score() method works, evaluating on training set is not reliable. print(grid_search.score(X, y))
copy
question mark

Una vez que has entrenado un objeto GridSearchCV, puedes usarlo para hacer predicciones utilizando el método .predict(). ¿Es correcto?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 6

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:

What other hyperparameters can I tune with GridSearchCV?

How do I interpret the results from GridSearchCV?

Can you explain how cross-validation works in this context?

Awesome!

Completion rate improved to 3.13

bookBúsqueda en cuadrícula con validación cruzada

Desliza para mostrar el menú

Ahora es momento de mejorar el rendimiento del modelo identificando los hiperparámetros más adecuados.

Este proceso se conoce como ajuste de hiperparámetros. El enfoque estándar consiste en probar diferentes valores de hiperparámetros, calcular la puntuación de validación cruzada para cada uno y seleccionar el valor que produce la mayor puntuación.

Este proceso puede realizarse utilizando la clase GridSearchCV del módulo sklearn.model_selection.

Al crear un objeto GridSearchCV, se debe proporcionar el modelo y la rejilla de parámetros (param_grid), y opcionalmente especificar la métrica de evaluación y el número de particiones. La rejilla de parámetros es un diccionario de valores de hiperparámetros a probar. Por ejemplo:

param_grid = {'n_neighbors': [1, 3, 5, 7]}

Esta configuración evalúa el modelo con 1, 3, 5 y 7 vecinos.

Después de inicializar GridSearchCV, se entrena con .fit(X, y).

  • El mejor modelo (mayor puntuación de validación cruzada) se puede acceder mediante .best_estimator_.
  • La puntuación de validación cruzada correspondiente se puede consultar a través de .best_score_.
123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCV df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Create the param_grid and initialize GridSearchCV object param_grid = {'n_neighbors': [1,3,5,7,9]} grid_search = GridSearchCV(KNeighborsClassifier(), param_grid) # Train the GridSearchCV object. During training it finds the best parameters grid_search.fit(X, y) # Print the best estimator and its cross-validation score print(grid_search.best_estimator_) print(grid_search.best_score_)
copy

El siguiente paso consiste en tomar el best_estimator_ y entrenarlo con todo el conjunto de datos, ya que ya se ha identificado que tiene los mejores parámetros. Este paso se realiza automáticamente mediante GridSearchCV.

Como resultado, el propio objeto grid_search se convierte en un modelo entrenado con los parámetros óptimos. Puede utilizarse directamente para predicción y evaluación a través de los métodos .predict() y .score().

123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCV df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Create the param_grid and initialize GridSearchCV object param_grid = {'n_neighbors': [1,3,5,7,9]} grid_search = GridSearchCV(KNeighborsClassifier(), param_grid) # Train the GridSearchCV object. During training it finds the best parameters grid_search.fit(X, y) # Evaluate the grid_search on the training set # It is done only to show that .score() method works, evaluating on training set is not reliable. print(grid_search.score(X, y))
copy
question mark

Una vez que has entrenado un objeto GridSearchCV, puedes usarlo para hacer predicciones utilizando el método .predict(). ¿Es correcto?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

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