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