В машинном обучении настройка гиперпараметров так же важна, как очистка данных и извлечение признаков. Это установка значений параметра перед процессом обучения. Параметр настройки также очень важен и интересен. Параметры очень чувствительны к небольшому изменению скорости обучения, иначе оценщики приведут к большому изменению точности модели.
Методы настройки гиперпараметра
- Поиск по сетке
Поиск по сетке — классический способ настройки гиперпараметров. Мы сделали сетку и ищем лучший результат, объединяя значения и находя лучшую комбинацию.
values1 = [0.05, 0.03, 0.2, 0.3, 1, 3, 15, 25, 50] values2 = [0.05, 0.03, 0.2, 0.3, 1, 3, 15, 25, 50] best_score = 0 best_params = {'C': None, 'gamma': None} if score > best_score: best_score = score best_params['C1'] = C1 best_params['C2'] = C2
Поиск по сетке всегда приводит к оптимальному решению, но он занимает много времени, а из-за большого количества комбинаций требуются большие вычислительные ресурсы, что делает его дорогим.
2. Случайный поиск
Случайный поиск случайным образом выбирает значения гиперпараметров и проверяет наилучший результат. N_iter — важный параметр, определяющий количество случайных поисков в процессе.
best_score = 0 best_params = {'C1': None, 'C2': None} for i in range(10): svc = svm.SVC(C1=randint(0, 9), C2=randint(0, 3)) svc.fit(X, y) score = svc.score(Xval, yval) if score > best_score: best_score = score best_params['C1'] = C1 best_params['C2'] = C2
Случайный поиск экономит время и требует меньше вычислительной мощности, но лучшая модель не гарантируется.
3. Байесовская оптимизация
Байесовская оптимизация — это вероятностная модель. Он фокусируется на тех параметрах, которые могут привести к оптимальной модели, и для этого используются прошлые данные.
C1=5 C2=0.2 for i in range(10): C1, C2 = gaussian_process (hyperparams=[C1,C2], loss-expected_improvement) svc = svm. SVC(C1=C1,C2=C2) svc.fit(X, y) score = svc. score (Xval, yval) if score best_score: best_score = score best_params['C1']=C1 best_params[’C2' ]=C2
Байесовская оптимизация требует меньше времени, поскольку количество итераций ограничено, и это также приводит к оптимальной модели, поскольку мы выбираем те гиперпараметры, которые имеют тенденцию давать проверенные решения.
Заключение
Мы обсудили методы гиперпараметра и то, как они полезны для улучшения модели. Оценка может оставаться постоянной, но продолжайте пытаться от небольшого изменения результата к значительному изменению точности, поэтому стоит потратить время на настройку гиперпараметра.