Введение в настройку гиперпараметров

Валидация моделей на Python

Kasey Jones

Data Scientist

Параметры модели

Параметры:

  • Обучаются или оцениваются на основе данных
  • Являются результатом обучения модели
  • Используются при построении прогнозов
  • Не задаются вручную
Валидация моделей на Python

Параметры линейной регрессии

Параметры создаются в процессе обучения модели:

from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(X, y)
print(lr.coef_, lr.intercept_)
[[0.798, 0.452]] [1.786]
Валидация моделей на Python

Параметры линейной регрессии

До обучения модели параметры не существуют:

lr = LinearRegression()
print(lr.coef_, lr.intercept_)
AttributeError: 'LinearRegression' object has no attribute 'coef_'
Валидация моделей на Python

Гиперпараметры модели

Гиперпараметры:

  • Задаются вручную _до_ начала обучения
  • Определяют, как именно должно проходить обучение
Валидация моделей на Python

Гиперпараметры случайного леса

Гиперпараметр Описание Возможные значения (по умолчанию)
n_estimators Количество деревьев решений в лесу 2+ (10)
max_depth Максимальная глубина деревьев решений 2+ (None)
max_features Количество признаков, рассматриваемых при разбиении См. документацию
min_samples_split Минимальное количество образцов, необходимое для разбиения 2+ (2)
Валидация моделей на Python

Что такое настройка гиперпараметров?

Настройка гиперпараметров:

  • Выбрать гиперпараметры
  • Запустить модель одного типа с разными наборами значений
  • Задать диапазоны возможных значений
  • Указать единственную метрику точности
Валидация моделей на Python

Задание диапазонов

depth = [4, 6, 8, 10, 12]
samples = [2, 4, 6, 8]
features = [2, 4, 6, 8, 10]

# Specify hyperparameters rfc = RandomForestRegressor( n_estimators=100, max_depth=depth[0], min_samples_split=samples[3], max_features=features[1])
rfr.get_params()
{'bootstrap': True,
 'criterion': 'mse'
 ...
}
Валидация моделей на Python

Слишком много гиперпараметров!

rfr.get_params()
{'bootstrap': True,
 'criterion': 'mse',
 'max_depth': 4,
 'max_features': 4,
 'max_leaf_nodes': None,
 'min_impurity_decrease': 0.0,
 'min_impurity_split': None,
 'min_samples_leaf': 1,
 'min_samples_split': 8,
 ...
 }
Валидация моделей на Python

Общие рекомендации

  • Начните с основных
  • Изучите документацию
  • Проверяйте практические диапазоны
Валидация моделей на Python

Давайте потренируемся!

Валидация моделей на Python

Preparing Video For Download...