Эластичная сеть — это метод регуляризованной регрессии, который линейно комбинирует штрафы L1 и L2 методов лассо и гребня. Это популярный выбор для задач регрессии с многомерными данными, поскольку он может помочь предотвратить переоснащение и повысить точность модели.

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

Эластичная сетка объединяет штрафы L1 и L2 линейным образом. Величина каждого штрафа контролируется параметром 𝛼. Когда 𝛼 = 0, эластичная сеть эквивалентна гребневой регрессии. Когда 𝛼 = 1, эластичная сеть эквивалентна регрессии лассо. Когда 𝛼 находится в диапазоне от 0 до 1, эластичная сеть представляет собой комбинацию регрессии гребня и регрессии лассо.

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

Вот некоторые из преимуществ использования эластичной сетки:

  • Это может помочь предотвратить переоснащение.
  • Это может повысить точность модели.
  • Его можно использовать с многомерными данными.

Вот некоторые из недостатков использования эластичной сетки:

  • Это может быть дорого в вычислительном отношении.
  • Выбрать оптимальное значение параметра 𝛼 бывает сложно.

В целом эластичная сеть является мощным инструментом для решения задач регрессии с многомерными данными. Это может помочь предотвратить переоснащение и повысить точность модели.

Математическая формулировка

min_β (1/n) * ||y - Xβ||^2 + λ * α * ||β||_1 + (1-α) * λ * ||β||_2^2

где:

  • y — вектор ответов
  • X — матрица дизайна
  • β – вектор коэффициентов
  • n — количество образцов
  • λ — параметр регуляризации
  • α – параметр смешивания эластичной сетки

Используемые параметры

альфа и l1_ratio

Альфа и l1_ratio являются гиперпараметрами, которые контролируют силу штрафа за регуляризацию в эластичной сетевой регрессии. Альфа — это глобальный гиперпараметр, который управляет общей силой штрафа, а l1_ratio — это относительный гиперпараметр, который управляет балансом между штрафами L1 и L2.

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

Более высокое значение l1_ratio приведет к большему акценту на штрафе L1, что будет способствовать большей разреженности коэффициентов модели. Более низкое значение l1_ratio приведет к большему акценту на штрафе L2, что будет способствовать большей гладкости коэффициентов модели.

Выполнение

в наборе данных Бостона, предоставленном sklearn

# Create the pipeline
pipeline = Pipeline([
    ('qt', QuantileTransformer()),
    ('elastic_net', ElasticNet())
])

# Create the hyperparameter grid
hyperparameters = {
    'qt__n_quantiles': [10, 100],
    'qt__output_distribution': ['uniform', 'normal'],
    'elastic_net__alpha': [ 0.1, 1, 10],
    'elastic_net__l1_ratio': [0.1, 0.5, 0.8]
}

# Create the grid search CV object
grid_search = GridSearchCV(pipeline, hyperparameters, cv=5)

# Fit the grid search CV object to the data
grid_search.fit(boston.data, boston.target)

# Print the best parameters
print(grid_search.best_params_)

# Print the best score
print(grid_search.best_score_)

для полной программы реализации эластичной сети посетите репозиторий GitHub ниже: