single
Завдання: Вибір Найкращого Значення 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.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат