Лекция 14. Подбор гиперпараметров,
интерпретация и надёжность моделей
Цель лекции. Научиться выбирать гиперпараметры без
использования тестовой выборки, объяснять прогнозы модели и оценивать её
устойчивость, воспроизводимость и риски при эксплуатации.
Ключевые понятия: гиперпараметр, Grid Search, Random Search,
кросс-валидация, Pipeline, важность признаков, permutation importance, SHAP,
устойчивость, сдвиг распределения, воспроизводимость.
1. Параметры и гиперпараметры модели
Параметры определяются алгоритмом в процессе обучения:
например, коэффициенты логистической регрессии или веса нейронной сети. Гиперпараметры
задаются до обучения и управляют устройством модели либо процессом её
построения. Примеры: глубина дерева max_depth, число соседей n_neighbors,
коэффициент регуляризации C, скорость обучения learning_rate.
Пусть алгоритм обучения с
гиперпараметрами
строит
модель
. Задача настройки состоит в поиске
конфигурации с наилучшей оценкой на валидации:
![]()
Здесь
—
множество допустимых конфигураций, а
—
средняя валидационная ошибка. Если используется метрика, которую нужно
максимизировать (например, F1), вместо минимума выбирают максимум.
Важно различать обучение параметров
модели и подбор гиперпараметров: это два связанных, но разных процесса.
2. Методы поиска гиперпараметров
Grid Search (поиск по сетке) перебирает все комбинации заранее заданных
значений. Метод понятен и воспроизводим, но при большом числе параметров
становится дорогим.
Random Search (случайный поиск) выбирает заданное количество случайных
комбинаций из распределений или списков значений. При ограниченном
вычислительном бюджете он часто позволяет исследовать более широкий диапазон.
|
Метод |
Принцип |
Основное ограничение |
|
Grid Search |
Полный перебор сетки |
Число комбинаций быстро растёт |
|
Random Search |
Случайная выборка конфигураций |
Не гарантирует проверку всех
вариантов |
|
Байесовская оптимизация |
Следующая конфигурация выбирается
по модели результатов предыдущих испытаний |
Более сложная организация поиска |
Например, для дерева решений можно
проверить max_depth из набора [3, 5, 8] и min_samples_leaf из [1, 3, 5]. Полный
перебор содержит:
![]()
комбинаций. Если каждая конфигурация
оценивается пятикратной перекрёстной проверкой, потребуется 45 обучений, не
считая итогового переобучения.
3. Корректная настройка и
предотвращение утечки данных
Настройка модели должна выполняться только
на обучающих данных, с использованием внутренней валидации. Тестовую
выборку сохраняют для окончательной независимой оценки.
Правильная последовательность:
1.
Отделить
тестовую выборку.
2.
Определить
метрику, отражающую цель задачи.
3.
Создать
Pipeline, включающий все обучаемые преобразования признаков и модель.
4.
Провести
поиск гиперпараметров с перекрёстной проверкой на обучающей части.
5.
Обучить
лучшую конфигурацию на всей обучающей выборке.
6.
Один
раз оценить результат на тестовых данных.
Если стандартизация, заполнение пропусков или
отбор признаков выполняются до разделения на блоки кросс-валидации, возникает утечка
данных: статистики валидационных объектов влияют на обучение. Pipeline
помогает избежать такой ошибки.
Если одновременно оценивается множество
вариантов и требуется особенно строгая оценка качества процедуры выбора,
применяют вложенную перекрёстную проверку (nested CV): внутренний цикл
подбирает гиперпараметры, внешний оценивает весь процесс настройки.
4. Интерпретация модели и важность признаков
Интерпретация помогает понять, какие признаки влияют на
прогноз и насколько объяснение соответствует предметной области. Следует
различать:
•
Глобальную интерпретацию — общие закономерности работы
модели.
•
Локальную интерпретацию — причины конкретного прогноза для
отдельного объекта.
Для линейной модели коэффициенты характеризуют
направление и силу влияния признаков в рамках принятой модели и масштаба
переменных. В дереве решений можно проследить путь от корня к листу.
Permutation importance
(перестановочная важность) оценивает снижение качества модели
после случайного перемешивания значений одного признака на отложенных данных:
![]()
Здесь
—
метрика, которую необходимо максимизировать, а
— данные
с перемешанным
-м признаком. Большое положительное значение
означает, что нарушение связи данного признака с целевой переменной ухудшает
качество.
Метод зависит от выбранной метрики и может
давать неоднозначные результаты при сильно коррелирующих признаках.
SHAP — семейство методов объяснения, основанных на
значениях Шепли. Для конкретного прогноза объяснение часто представляют как
сумму базового значения и вкладов признаков:

Форма равенства зависит от используемого
объяснителя и пространства выходов модели (например, логиты или вероятности).
Вклады SHAP описывают поведение модели, но сами по себе не доказывают
причинно-следственную связь.
5. Надёжность, устойчивость и воспроизводимость
Надёжная модель должна сохранять приемлемое качество не только
на исходной тестовой выборке, но и при реалистичных изменениях данных и условий
использования.
Основные аспекты проверки:
•
Устойчивость к шуму: как меняется прогноз при небольших
ошибках измерения признаков.
•
Сдвиг распределения (distribution shift): отличаются ли новые данные от обучающих.
•
Качество по подгруппам: нет ли значительного ухудшения
результатов для отдельных категорий объектов.
•
Калибровка вероятностей: соответствуют ли прогнозируемые
вероятности наблюдаемым частотам.
•
Воспроизводимость: можно ли повторить эксперимент с
теми же данными, настройками и версиями библиотек.
Для численной оценки устойчивости можно
сравнить качество на исходных и изменённых данных:
![]()
Отрицательное
при
метрике, которую максимизируют, указывает на ухудшение. При интерпретации важно
учитывать величину выборки и статистическую неопределённость.
Фиксация random_state, версий зависимостей, источников
данных и выбранных гиперпараметров помогает повторять эксперименты. Однако одно
фиксированное случайное разбиение не заменяет полноценную проверку
устойчивости.
6. Практическая реализация на Python
Рассмотрим настройку логистической
регрессии с использованием GridSearchCV. Стандартизация включена в Pipeline,
поэтому выполняется отдельно внутри каждого обучающего блока.
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.inspection import permutation_importance
from sklearn.metrics import f1_score, classification_report
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42,
stratify=y
)
pipeline = Pipeline([
("scale",
StandardScaler()),
("model",
LogisticRegression(max_iter=2000))
])
param_grid = {
"model__C": [0.01, 0.1,
1.0, 10.0],
"model__class_weight":
[None, "balanced"]
}
search = GridSearchCV(
pipeline,
param_grid=param_grid,
scoring="f1",
cv=5,
n_jobs=-1
)
search.fit(X_train, y_train)
print("Лучшие параметры:", search.best_params_)
print("Средняя F1 на CV:", search.best_score_)
pred = search.predict(X_test)
print("Тестовая F1:", f1_score(y_test, pred))
print(classification_report(y_test, pred))
В данном примере GridSearchCV
сравнивает восемь комбинаций гиперпараметров. Встроенная перекрёстная проверка
помогает выбрать конфигурацию, а тестовая выборка используется только после
завершения поиска.
Теперь оценим перестановочную
важность признаков на тестовой выборке:
result
= permutation_importance(
search.best_estimator_,
X_test, y_test,
scoring="f1",
n_repeats=10,
random_state=42
)
names = load_breast_cancer().feature_names
ranking = sorted(
zip(names, result.importances_mean),
key=lambda item: item[1],
reverse=True
)
for name, importance in ranking[:5]:
print(f"{name}:
{importance:.4f}")
Важность отражает влияние
перемешивания признака на F1 именно для данной модели и данной выборки.
Результаты следует интерпретировать осторожно при наличии коррелирующих
признаков.
Самостоятельный эксперимент: замените GridSearchCV на RandomizedSearchCV,
сравните время выполнения и выбранные гиперпараметры при одинаковом бюджете
испытаний. Не подбирайте настройки по тестовой метрике.
7. Практическое значение и выводы
Подбор гиперпараметров позволяет
управлять сложностью модели и улучшать её способность обобщать данные. Для
корректной настройки важно заранее определить метрику, использовать
перекрёстную проверку и исключить утечку информации из тестовой выборки.
Интерпретация помогает анализировать
решения алгоритма, но объяснение прогноза не равно доказательству причинности.
Надёжность требует проверки устойчивости к шуму, изменениям распределения
данных и различиям между подгруппами объектов.
Главный результат лекции: умение организовать поиск
гиперпараметров, объяснять поведение обученной модели и оценивать риски её
применения на новых данных.