Spec-Zone.ru › scikit-learn

lasso_path

sklearn.linear_model.lasso_path(X, y, *, 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, **params)[исходный код]

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

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

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

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

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

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

Где:

||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)

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

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).

**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.

См. также

lars_path

Вычисляет траекторию регрессии наименьших углов или Lasso с помощью алгоритма LARS.

Lasso

Lasso — это линейная модель, оценивающая разреженные коэффициенты.

LassoLars

Модель Lasso, обученная методом регрессии наименьших углов, также известным как Lars.

LassoCV

Линейная модель Lasso с итеративным обучением вдоль траектории регуляризации.

LassoLarsCV

Lasso с перекрёстной проверкой, использующий алгоритм LARS.

sklearn.decomposition.sparse_encode

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

Примечания

Пример см. в разделе examples/linear_model/plot_lasso_lasso_lars_elasticnet_path.py.

Чтобы избежать ненужного дублирования в памяти, аргумент X метода fit следует передавать непосредственно в виде массива numpy с порядком хранения Fortran.

Обратите внимание: в некоторых случаях решатель Lars может значительно быстрее выполнять эту функцию. В частности, для получения коэффициентов модели между значениями, возвращаемыми lars_path, можно использовать линейную интерполяцию.

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

Примеры

Сравнение lasso_path и lars_path с интерполяцией:

>>> import numpy as np
>>> from sklearn.linear_model import lasso_path
>>> X = np.array([[1, 2, 3.1], [2.3, 5.4, 4.3]]).T
>>> y = np.array([1, 2, 3.1])
>>> # Use lasso_path to compute a coefficient path
>>> _, coef_path, _ = lasso_path(X, y, alphas=[5., 1., .5])
>>> print(coef_path)
[[0.         0.         0.46874778]
 [0.2159048  0.4425765  0.23689075]]
>>> # Now use lars_path and 1D linear interpolation to compute the
>>> # same path
>>> from sklearn.linear_model import lars_path
>>> alphas, active, coef_path_lars = lars_path(X, y, method='lasso')
>>> from scipy import interpolate
>>> coef_path_continuous = interpolate.interp1d(alphas[::-1],
...                                             coef_path_lars[:, ::-1])
>>> print(coef_path_continuous([5., 1., .5]))
[[0.         0.         0.46915237]
 [0.2159048  0.4425765  0.23668876]]

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

Траектории 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.lasso_path.html

Spec-Zone.ru

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