single
Завдання: Вибір Найкращого Значення K
Свайпніть щоб показати меню
Як показано в попередніх розділах, передбачення моделі можуть змінюватися залежно від значення k (кількість сусідів). Під час побудови моделі k-NN важливо обрати таке значення k, яке забезпечує найкращу продуктивність.
Поширеним підходом є використання крос-валідації для оцінки якості моделі. Можна виконати цикл і обчислити оцінки крос-валідації для діапазону значень k, а потім вибрати те, яке має найвищу оцінку. Це найпоширеніший метод.
Для цього sklearn пропонує зручний інструмент: клас GridSearchCV.
Параметр param_grid приймає словник, де ключами є назви параметрів, а значеннями — списки варіантів для перевірки. Наприклад, щоб протестувати значення від 1 до 99 для n_neighbors, можна написати:
param_grid = {'n_neighbors': range(1, 100)}
Виклик методу .fit(X, y) для об'єкта GridSearchCV здійснює пошук по сітці параметрів, щоб знайти найкращі параметри, а потім перенавчає модель на всьому наборі даних з використанням цих найкращих параметрів.
Доступ до найкращої оцінки можна отримати через атрибут .best_score_, а передбачення з оптимізованою моделлю — за допомогою методу .predict(). Також можна отримати найкращу модель через атрибут .best_estimator_.
Проведіть, щоб почати кодувати
Вам надано набір даних з оцінками Star Wars, збережений у змінній DataFrame як df.
- Ініціалізуйте
param_gridяк словник, що містить параметрn_neighborsзі значеннями[3, 9, 18, 27]. - Створіть об'єкт
GridSearchCV, використовуючиparam_gridз 4-кратною крос-валідацією, навчіть його та збережіть у зміннійgrid_search. - Отримайте найкращу модель з
grid_searchі збережіть її у зміннійbest_model. - Отримайте оцінку найкращої моделі та збережіть її у змінній
best_score.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат