Spec-Zone.ru › scikit-learn

lars_path

sklearn.linear_model.lars_path(X, y, Xy=None, *, Gram=None, max_iter=500, alpha_min=0, method='lar', copy_X=True, eps=np.float64(2.220446049250313e-16), copy_Gram=True, verbose=0, return_path=True, return_n_iter=False, positive=False)[исходный код]

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

Целевая функция оптимизации для случая method=’lasso’:

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

в случае method=’lar’ целевая функция известна только в виде неявного уравнения (см. обсуждение в [1]).

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

Параметры:
XNone или ndarray формы (n_samples, n_features)

Входные данные. Если X — None, Gram также должен быть None. Если доступна только матрица Грама, используйте вместо этого lars_path_gram.

yNone или ndarray формы (n_samples,)

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

Xyarray-like формы (n_features,), по умолчанию=None

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

GramNone, ‘auto’, bool, ndarray формы (n_features, n_features), по умолчанию=None

Предварительно вычисленная матрица Грама X.T @ X; если 'auto', матрица Грама вычисляется по заданной X, когда число образцов больше числа признаков.

max_iterint, по умолчанию=500

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

alpha_minfloat, по умолчанию=0

Минимальная корреляция на пути. Соответствует параметру регуляризации alpha в Lasso.

method{‘lar’, ‘lasso’}, по умолчанию=’lar’

Задает возвращаемую модель. Выберите 'lar' для регрессии наименьшего угла или 'lasso' для Lasso.

copy_Xbool, по умолчанию=True

Если False, X перезаписывается.

epsfloat, по умолчанию=np.finfo(float).eps

Регуляризация с машинной точностью при вычислении диагональных множителей разложения Холецкого. Увеличьте это значение для систем с очень плохой обусловленностью. В отличие от параметра tol в некоторых алгоритмах итерационной оптимизации, этот параметр не регулирует точность оптимизации.

copy_Grambool, по умолчанию=True

Если False, Gram перезаписывается.

verboseint, по умолчанию=0

Управляет подробностью вывода.

return_pathbool, по умолчанию=True

Если True, возвращает весь путь; в противном случае возвращает только его последнюю точку.

return_n_iterbool, по умолчанию=False

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

positivebool, по умолчанию=False

Ограничивает коэффициенты значениями >= 0. Этот параметр разрешен только для метода ‘lasso’. Обратите внимание, что при малых значениях alpha коэффициенты модели не будут сходиться к решению метода наименьших квадратов. Как правило, решению функции lasso_path метода покоординатного спуска соответствуют только коэффициенты вплоть до наименьшего значения alpha (alphas_[alphas_ > 0.].min() при fit_path=True), достигнутого пошаговым алгоритмом Lars-Lasso.

Возвращает:
alphasndarray формы (n_alphas + 1,)

Максимум ковариаций (по абсолютному значению) на каждой итерации. n_alphas равен max_iter, n_features или числу узлов на пути с alpha >= alpha_min — в зависимости от того, какое значение меньше.

activendarray формы (n_alphas,)

Индексы активных переменных в конце пути.

coefsndarray формы (n_features, n_alphas + 1)

Коэффициенты на протяжении пути.

n_iterint

Число выполненных итераций. Возвращается, только если return_n_iter имеет значение True.

См. также

lars_path_gram

Вычисляет путь LARS в режиме достаточной статистики.

lasso_path

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

LassoLars

Модель Lasso, обученная методом регрессии наименьшего угла (Lars).

Lars

Модель регрессии наименьшего угла (LAR).

LassoLarsCV

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

LarsCV

Модель регрессии наименьшего угла с перекрестной проверкой.

sklearn.decomposition.sparse_encode

Разреженное кодирование.

Литература

[1]

«Регрессия наименьшего угла», Эфрон и др. http://statweb.stanford.edu/~tibs/ftp/lars.pdf

[2]

Статья в Википедии о регрессии наименьшего угла

[3]

Статья в Википедии о Lasso

Примеры

>>> from sklearn.linear_model import lars_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 = lars_path(X, y)
>>> alphas.shape
(3,)
>>> estimated_coef
array([[ 0.     ,  0.     ,  0.     ],
       [ 0.     ,  0.     ,  0.     ],
       [ 0.     ,  0.     ,  0.     ],
       [ 0.     , 46.96, 97.99],
       [ 0.     ,  0.     , 45.70]])

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

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

Spec-Zone.ru

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