Spec-Zone.ru › scikit-learn

enet_path

sklearn.linear_model.enet_path(X, y, *, l1_ratio=0.5, eps=0.001, n_alphas='deprecated', alphas='warn', precompute='auto', Xy=None, copy_X=True, coef_init=None, verbose=False, return_n_iter=False, positive=False, check_input=True, **params)[исходный код]

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

Функция оптимизации ElasticNet различается для задач с одним и несколькими выходами.

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

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}

то есть сумма L2-норм каждой строки (задачи) (i — признак, j — задача)

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

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

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

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

Целевые значения.

l1_ratiofloat, default=0.5

Число от 0 до 1, передаваемое в ElasticNet (задаёт соотношение между штрафами l1 и l2). l1_ratio=1 соответствует Lasso.

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

Модель ElasticNet для нескольких задач с комбинированной нормой L1/L2 в качестве регуляризатора.

MultiTaskElasticNetCV

ElasticNet с нормой L1/L2 для нескольких задач и встроенной перекрёстной проверкой.

ElasticNet

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

ElasticNetCV

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

Примечания

Пример см. в 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, alphas=3)
>>> alphas.shape
(3,)
>>> estimated_coef
 array([[ 0.,  0.787,  0.568],
        [ 0.,  1.120,  0.620],
        [-0., -2.129, -1.128],
        [ 0., 23.046, 88.939],
        [ 0., 10.637, 41.566]])

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

Пути Lasso, Lasso-LARS и Elastic Net

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

Spec-Zone.ru

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