Spec-Zone.ru › scikit-learn

enet_path

sklearn.linear_model.enet_path(X, y, *, l1_ratio=0.5, eps=0.001, n_alphas=100, alphas=None, precompute='auto', Xy=None, copy_X=True, coef_init=None, verbose=False, return_n_iter=False, positive=False, check_input=True, **params)[source]

Вычисление пути эластичной сети с помощью итеративного градиентного спуска.

Функция оптимизации эластичной сети отличается для задач с одним и множеством выходов.

Для задач с одним выходом она имеет вид:

1 / (2 * n_samples) * ||y - Xw||^2_2
+ alpha * l1_ratio * ||w||_1
+ 0.5 * alpha * (1 - l1_ratio) * ||w||^2_2

Для задач с множеством выходов она имеет вид:

(1 / (2 * n_samples)) * ||Y - XW||_Fro^2
+ alpha * l1_ratio * ||W||_21
+ 0.5 * alpha * (1 - l1_ratio) * ||W||_Fro^2

Где:

||W||_21 = \sum_i \sqrt{\sum_j w_{ij}^2}

т.е. сумма норм каждой строки.

Подробнее см. в Руководстве пользователя.

Параметры:
X{array-like, sparse matrix} of shape (n_samples, n_features)

Данные обучения. Передаются напрямую как данные в формате Fortran, чтобы избежать ненужного дублирования памяти. Если y является одновыходной задачей, то X может быть разреженной.

y{array-like, sparse matrix} of shape (n_samples,) or (n_samples, n_targets)

Значения целевой переменной.

l1_ratiofloat, default=0.5

Число от 0 до 1, задающее масштаб между l1 и l2 штрафами в эластичной сети. l1_ratio=1 соответствует задаче Лассо.

epsfloat, default=1e-3

Длина пути. eps=1e-3 означает, что alpha_min / alpha_max = 1e-3.

n_alphasint, default=100

Количество значений alpha вдоль пути регуляризации.

alphasarray-like, default=None

Список значений alpha, для которых вычисляются модели. Если None, значения alpha устанавливаются автоматически.

precompute‘auto’, bool or array-like of shape (n_features, n_features), default=’auto’

Использовать ли предварительно вычисленную матрицу Грама для ускорения вычислений. Если установлено 'auto', мы сами решим. Матрица Грама также может быть передана как аргумент.

Xyarray-like of shape (n_features,) or (n_features, n_targets), default=None

Xy = np.dot(X.T, y), которое может быть предварительно вычислено. Оно полезно только когда предварительно вычислена матрица Грама.

copy_Xbool, default=True

Если True, X будет скопирован; иначе, он может быть перезаписан.

coef_initarray-like of shape (n_features, ), default=None

Начальные значения коэффициентов.

verbosebool or int, default=False

Уровень подробности вывода.

return_n_iterbool, default=False

Возвращать ли количество итераций?

positivebool, default=False

Если True, то коэффициенты будут положительными. (Допускается только когда y.ndim == 1).

check_inputbool, default=True

Если False, проверки входных данных пропускаются (включая матрицу Грама, если она предоставлена). Предполагается, что они обрабатываются вызывающим методом.

**paramskwargs

Дополнительные ключевые аргументы, передаваемые решателю итеративного градиентного спуска.

Возвращаемые значения:
alphasndarray of shape (n_alphas,)

Значения alpha вдоль пути, для которых вычисляются модели.

coefsndarray of shape (n_features, n_alphas) or (n_targets, n_features, n_alphas)

Коэффициенты вдоль пути.

dual_gapsndarray of shape (n_alphas,)

Двойные зазоры в конце оптимизации для каждого alpha.

n_iterslist of int

Количество итераций, выполненных оптимизатором итеративного градиентного спуска для достижения заданной точности для каждого значения alpha. (Возвращается, когда return_n_iter установлено в True).

См. также

MultiTaskElasticNet

Модель многозадачной эластичной сети, обученная с использованием смешанной l1/l2 нормы как регуляризатора.

MultiTaskElasticNetCV

Многозадачная эластичная сеть L1/L2 с встроенной кросс-валидацией.

ElasticNet

Линейная регрессия с комбинированными l1 и l2 априорными ограничениями как регуляризатором.

ElasticNetCV

Модель эластичной сети с итеративным подбором вдоль пути регуляризации.

Примечания

Пример см. в examples/linear_model/plot_lasso_lasso_lars_elasticnet_path.py.

Примеры

>>> from sklearn.linear_model import enet_path
>>> from sklearn.datasets import make_regression
>>> X, y, true_coef = make_regression(
...    n_samples=100, n_features=5, n_informative=2, coef=True, random_state=0
... )
>>> true_coef
array([ 0.        ,  0.        ,  0.        , 97.9..., 45.7...])
>>> alphas, estimated_coef, _ = enet_path(X, y, n_alphas=3)
>>> alphas.shape
(3,)
>>> estimated_coef
 array([[ 0.        ,  0.78...,  0.56...],
        [ 0.        ,  1.12...,  0.61...],
        [-0.        , -2.12..., -1.12...],
        [ 0.        , 23.04..., 88.93...],
        [ 0.        , 10.63..., 41.56...]])

Примеры из галереи

Пути Лассо, Лассо-LARS и эластичной сети

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.linear_model.enet_path.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API