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 як кількість сусідів.

Далі модель навчається за допомогою методу .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 у нашому прикладі) стає навченою моделлю з найкращими параметрами. Тепер ми можемо використовувати цей об'єкт для прогнозування або оцінювання. Саме тому у GridSearchCV є методи .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

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

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 як кількість сусідів.

Далі модель навчається за допомогою методу .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 у нашому прикладі) стає навченою моделлю з найкращими параметрами. Тепер ми можемо використовувати цей об'єкт для прогнозування або оцінювання. Саме тому у GridSearchCV є методи .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