Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Завдання: Вибір Найкращого Значення K | Секція
Основи Контрольованого Навчання

bookЗавдання: Вибір Найкращого Значення K

Як показано в попередніх розділах, передбачення моделі можуть змінюватися залежно від значення k (кількість сусідів). Під час побудови моделі k-NN важливо обрати таке значення k, яке забезпечує найкращу продуктивність.

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

Для цього у sklearn є зручний інструмент: клас GridSearchCV.

Конструктор:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — об'єкт моделі;
  • param_grid — словник із параметрами для перебору;
    • scoring — метрика для оцінки крос-валідації;
  • cv — кількість фолдів (за замовчуванням 5);

Методи:

  • fit(X, y) — навчання моделей на X, y;
  • predict(X) — передбачення класу для X;
  • score(X, y) — повертає точність для набору X, y;

Атрибути:

  • best_estimator_ — об'єкт моделі з найвищою оцінкою;
  • best_score_ — оцінка для best_estimator_.

Параметр param_grid приймає словник, де ключі — це назви параметрів, а значення — списки варіантів для перебору. Наприклад, щоб протестувати значення від 1 до 99 для n_neighbors, можна записати:

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

Виклик методу .fit(X, y) для об'єкта GridSearchCV здійснить пошук по сітці параметрів, щоб знайти найкращі параметри, а потім перенавчить модель на всьому наборі даних з цими параметрами.

Отримати найкращу оцінку можна через атрибут .best_score_, а робити передбачення оптимізованою моделлю — за допомогою методу .predict(). Також можна отримати найкращу модель через атрибут .best_estimator_.

Завдання

Swipe to start coding

Вам надано набір даних з оцінками Star Wars, збережений у змінній DataFrame як df.

  • Ініціалізуйте param_grid як словник, що містить параметр n_neighbors зі значеннями [3, 9, 18, 27].
  • Створіть об'єкт GridSearchCV, використовуючи param_grid з 4-кратною крос-валідацією, навчіть його та збережіть у змінній grid_search.
  • Отримайте найкращу модель з grid_search і збережіть її у змінній best_model.
  • Отримайте оцінку найкращої моделі та збережіть її у змінній best_score.

Рішення

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

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

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

Секція 1. Розділ 20
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

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

close

bookЗавдання: Вибір Найкращого Значення K

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

Як показано в попередніх розділах, передбачення моделі можуть змінюватися залежно від значення k (кількість сусідів). Під час побудови моделі k-NN важливо обрати таке значення k, яке забезпечує найкращу продуктивність.

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

Для цього у sklearn є зручний інструмент: клас GridSearchCV.

Конструктор:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — об'єкт моделі;
  • param_grid — словник із параметрами для перебору;
    • scoring — метрика для оцінки крос-валідації;
  • cv — кількість фолдів (за замовчуванням 5);

Методи:

  • fit(X, y) — навчання моделей на X, y;
  • predict(X) — передбачення класу для X;
  • score(X, y) — повертає точність для набору X, y;

Атрибути:

  • best_estimator_ — об'єкт моделі з найвищою оцінкою;
  • best_score_ — оцінка для best_estimator_.

Параметр param_grid приймає словник, де ключі — це назви параметрів, а значення — списки варіантів для перебору. Наприклад, щоб протестувати значення від 1 до 99 для n_neighbors, можна записати:

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

Виклик методу .fit(X, y) для об'єкта GridSearchCV здійснить пошук по сітці параметрів, щоб знайти найкращі параметри, а потім перенавчить модель на всьому наборі даних з цими параметрами.

Отримати найкращу оцінку можна через атрибут .best_score_, а робити передбачення оптимізованою моделлю — за допомогою методу .predict(). Також можна отримати найкращу модель через атрибут .best_estimator_.

Завдання

Swipe to start coding

Вам надано набір даних з оцінками Star Wars, збережений у змінній DataFrame як df.

  • Ініціалізуйте param_grid як словник, що містить параметр n_neighbors зі значеннями [3, 9, 18, 27].
  • Створіть об'єкт GridSearchCV, використовуючи param_grid з 4-кратною крос-валідацією, навчіть його та збережіть у змінній grid_search.
  • Отримайте найкращу модель з grid_search і збережіть її у змінній best_model.
  • Отримайте оцінку найкращої моделі та збережіть її у змінній best_score.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

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

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

Секція 1. Розділ 20
single

single

some-alt