Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте GridSearchCV | Моделювання
Вступ до ML з Scikit-learn

bookGridSearchCV

Тепер настав час покращити продуктивність моделі, визначивши найбільш відповідні гіперпараметри.

Цей процес називається налаштуванням гіперпараметрів. Стандартний підхід полягає у тестуванні різних значень гіперпараметрів, обчисленні оцінки крос-валідації для кожного з них та виборі значення, яке дає найвищу оцінку.

Цей процес можна виконати за допомогою класу GridSearchCV з модуля sklearn.model_selection.

Під час створення об'єкта GridSearchCV потрібно вказати модель та решітку параметрів (param_grid), а також за бажанням визначити метрику оцінювання та кількість фолдів. Решітка параметрів — це словник значень гіперпараметрів для тестування. Наприклад:

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

Ця конфігурація оцінює модель з 1, 3, 5 та 7 сусідами.

Після ініціалізації GridSearchCV модель навчається за допомогою .fit(X, y).

  • Найкраща модель (з найвищою оцінкою крос-валідації) доступна через .best_estimator_.
  • Відповідну оцінку крос-валідації можна переглянути через .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

Наступний крок — взяти best_estimator_ і навчити його на всьому наборі даних, оскільки вже визначено, що він має найкращі параметри. Цей крок виконується автоматично за допомогою GridSearchCV.

У результаті об'єкт grid_search сам по собі стає навченим моделлю з оптимальними параметрами. Його можна використовувати безпосередньо для прогнозування та оцінки за допомогою методів .predict() та .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

Після тренування об'єкта GridSearchCV ви можете використовувати його для здійснення прогнозів за допомогою методу .predict(). Це правильно?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 6

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

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

bookGridSearchCV

Свайпніть щоб показати меню

Тепер настав час покращити продуктивність моделі, визначивши найбільш відповідні гіперпараметри.

Цей процес називається налаштуванням гіперпараметрів. Стандартний підхід полягає у тестуванні різних значень гіперпараметрів, обчисленні оцінки крос-валідації для кожного з них та виборі значення, яке дає найвищу оцінку.

Цей процес можна виконати за допомогою класу GridSearchCV з модуля sklearn.model_selection.

Під час створення об'єкта GridSearchCV потрібно вказати модель та решітку параметрів (param_grid), а також за бажанням визначити метрику оцінювання та кількість фолдів. Решітка параметрів — це словник значень гіперпараметрів для тестування. Наприклад:

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

Ця конфігурація оцінює модель з 1, 3, 5 та 7 сусідами.

Після ініціалізації GridSearchCV модель навчається за допомогою .fit(X, y).

  • Найкраща модель (з найвищою оцінкою крос-валідації) доступна через .best_estimator_.
  • Відповідну оцінку крос-валідації можна переглянути через .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

Наступний крок — взяти best_estimator_ і навчити його на всьому наборі даних, оскільки вже визначено, що він має найкращі параметри. Цей крок виконується автоматично за допомогою GridSearchCV.

У результаті об'єкт grid_search сам по собі стає навченим моделлю з оптимальними параметрами. Його можна використовувати безпосередньо для прогнозування та оцінки за допомогою методів .predict() та .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

Після тренування об'єкта GridSearchCV ви можете використовувати його для здійснення прогнозів за допомогою методу .predict(). Це правильно?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 6
some-alt