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]])
Примеры из галереи
© 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