Grid Search

Оновлено: 31.07.2023

Алгоритми машинного навчання відіграють важливу роль у прийнятті рішень на основі даних. Професіонали ніколи не покладаються на один алгоритм для вирішення бізнес-задачі. Виходячи з проблеми, завжди застосовуються різні релевантні алгоритми та обирається оптимальна модель на основі найкращих показників ефективності моделей. Але це ще не кінець історії. Гіперпараметри можуть бути використані для покращення продуктивності моделі. Отже, знаходження відповідних гіперпараметрів допоможе нам отримати найефективнішу модель. У цьому уроці ми дізнаємося про гіперпараметри, сітковий пошук, перехресну перевірку, GridSearchCV та налаштування гіперпараметрів у Python.

Для вибору гіперпараметрів моделі можна використовувати ручний пошук, сітковий пошук, випадковий пошук, сітковий пошук і байєсівську оптимізацію.

Параметри та гіперпараметри

І параметри, і гіперпараметри є частиною моделі ML, хоча вони служать різним цілям. Давайте розглянемо відмінності між ними в контексті машинного навчання.

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

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

Пошук по сітці

Тепер, коли ми розуміємо, що таке гіперпараметри, нашою метою має бути визначення ідеальних значень гіперпараметрів для отримання найкращих результатів прогнозування за допомогою нашої моделі. Однак постає питання, як визначити оптимальні набори гіперпараметрів. Для пошуку оптимальних гіперпараметрів можна використати метод ручного пошуку, застосовуючи підхід "влучив - не влучив", що займе багато часу для розробки однієї моделі.

В результаті були розроблені такі технології, як Random Search і GridSearch. У цьому розділі ми розглянемо, як працює GridSearch і як GridSearchCV обробляє перехресну перевірку.

Grid Search розраховує продуктивність для кожної комбінації всіх наданих гіперпараметрів та їх значень, а потім вибирає оптимальне значення гіперпараметрів. Враховуючи кількість задіяних гіперпараметрів, це робить обробку трудомісткою і дороговартісною.

Пошук по сітці та перехресна перевірка

Модель навчається за допомогою перехресної перевірки. Як відомо, перед тим, як навчати на них модель, ми розділяємо дані на дві частини: навчальні дані та тестові дані. Процедура перехресної перевірки розділяє навчальні дані на дві частини: навчальні дані та дані для перевірки.

K-кратна перехресна перевірка є найпоширенішим видом перехресної перевірки. Навчальні дані розбиваються на k частин за допомогою ітеративного підходу. Одна частина залишається для тестування, а решта k-1 частин використовуються для навчання моделі в кожній ітерації. На наступній ітерації наступна частина буде використовуватися як тестові дані, а решта k-1 - як навчальні дані, і так далі. Програма буде записувати результати роботи моделі на кожній ітерації і в кінці запропонує середнє значення всіх результатів. Як наслідок, це трудомістка операція.

GridSearch - це етап оцінки моделі, який слід завершити після завершення обробки даних. Завжди корисно порівняти результати налаштованої та неналаштованої моделей. Це займе час і гроші, але, безсумнівно, дасть найкращі результати. Якщо вам потрібна допомога, scikit-learn API - це фантастичне місце для початку. Вчитися на практиці завжди корисно.