воскресенье, 1 сентября 2024 г.

Gradient, Boost

https://gs-ml.blogspot.com/2024/09/gradient-boost-boosting.html

https://www.phind.com/search?cache=ud4cei6pah74jkekibvjrdsx

Оптимизируемые гиперпараметры

В вашем коде вы оптимизируете следующие гиперпараметры Gradient Boosting Regressor:

  1. n_estimators (количество деревьев)
  2. max_depth (максимальная глубина дерева)
  3. learning_rate (скорость обучения)
  4. min_samples_split (минимальное количество образцов для разделения узла)
  5. min_samples_leaf (минимальное количество образцов в листе)

Диапазоны гиперпараметров

Вы определяете диапазоны для каждого гиперпараметра следующим образом:

n_estimators_range = range(50, 301, 50)

max_depth_range = range(3, 11, 2)

learning_rate_range = [0.001, 0.01, 0.1, 0.5]

min_samples_split_range = [2, 5, 10, 15]

min_samples_leaf_range = [1, 2, 4]

param_grid = dict(

    n_estimators=n_estimators_range,

    max_depth=max_depth_range,

    learning_rate=learning_rate_range,

    min_samples_split=min_samples_split_range,

    min_samples_leaf=min_samples_leaf_range

)

Это создает сетку параметров, где каждый гиперпараметр имеет несколько возможных значений.

----------------------------------------------------------------------------

Кроссвалидация

Кроссвалидация выполняется внутри функции evaluate_model, которая вызывается GridSearchCV:

def evaluate_model(params):

    model = GradientBoostingRegressor(**params)

    return -cross_val_score(model, X_train, y_train, cv=5, scoring='neg_mean_squared_error').mean()

  • X_train и y_train используются для обучения модели
  • cv=5 указывает на использование 5-кратной кроссвалидации
  • scoring='neg_mean_squared_error' использует отрицательную среднюю квадратичную ошибку как метрику оценки

GridSearchCV автоматически применяет эту функцию для каждой комбинации параметров, оценивая производительность модели и выбирая лучшую комбинацию параметров.

-----------------------------------------------------------------------------

5-кратная кроссвалидация (5-fold cross-validation) - это метод оценки качества модели, который разделяет данные на 5 равных подмножеств (фолдов). Затем модель обучается на 4 из 5 фолдов и оценивается на оставшемся фолде. Этот процесс повторяется 5 раз, используя каждый фолд в качестве тестового набора один раз.

Основные характеристики 5-кратной кроссвалидации:

  1. Разделение данных: Общий набор данных разделен на 5 равных фолдов.
  1. Процесс оценки:
    • 4 фолда используются для обучения модели
    • 1 фолд используется для оценки модели
  1. Повторение: Процесс повторяется 5 раз, каждый раз с другим фолдом в качестве тестового набора.
  1. Оценка: Средняя оценка производительности модели получается за все 5 итераций.

Преимущества 5-кратной кроссвалидации:

  • Экономит данные по сравнению с leave-one-out cross-validation
  • Меньше чувствителен к случайному выбору фолдов по сравнению с leave-one-out
  • Хорошо балансирует между переобучением и недообучением

Недостатки:

  • Может быть менее точным для очень маленьких наборов данных
  • Не учитывает взаимодействия между фолдами

В контексте вашего кода, вы используете 5-кратную кроссвалидацию в функции evaluate_model:

---------------------------------------------------------------------------

5-кратная кроссвалидация (5-fold cross-validation) - это метод оценки качества модели, который разделяет данные на 5 равных подмножеств (фолдов). Затем модель обучается на 4 из 5 фолдов и оценивается на оставшемся фолде. Этот процесс повторяется 5 раз, используя каждый фолд в качестве тестового набора один раз.

Основные характеристики 5-кратной кроссвалидации:

  1. Разделение данных: Общий набор данных разделен на 5 равных фолдов.
  1. Процесс оценки:
    • 4 фолда используются для обучения модели
    • 1 фолд используется для оценки модели
  1. Повторение: Процесс повторяется 5 раз, каждый раз с другим фолдом в качестве тестового набора.
  1. Оценка: Средняя оценка производительности модели получается за все 5 итераций.

Преимущества 5-кратной кроссвалидации:

  • Экономит данные по сравнению с leave-one-out cross-validation
  • Меньше чувствителен к случайному выбору фолдов по сравнению с leave-one-out
  • Хорошо балансирует между переобучением и недообучением

Недостатки:

  • Может быть менее точным для очень маленьких наборов данных
  • Не учитывает взаимодействия между фолдами

В контексте вашего кода, вы используете 5-кратную кроссвалидацию в функции 

evaluate_model:

return -cross_val_score(model, X_train, y_train, cv=5, scoring='neg_mean_squared_error').mean()

Здесь cv=5 указывает на использование 5-кратной кроссвалидации для оценки производительности модели


Комментариев нет:

Отправить комментарий