lars_path#
- sklearn.linear_model.lars_path(X, y, Xy=None, *, Грам=None, max_iter=500, alpha_min=0, метод=2.3.8.1. Граф взаимной достижимости, copy_X=True, eps=np.float64(2.220446049250313e-16), copy_Gram=True, verbose=0, return_path=True, return_n_iter=False, положительный=False)[источник]#
Вычисляет путь Least Angle Regression или 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, матрица Грама также должна бытьNone. Если доступна только матрица Грама, используйтеlars_path_gramвместо этого.- yNone или ndarray формы (n_samples,)
Входные целевые значения.
- Xyarray-like формы (n_features,), по умолчанию=None
Xy = X.T @ yкоторый может быть предварительно вычислен. Это полезно только когда матрица Грама предварительно вычислена.- ГрамNone, ‘auto’, bool, ndarray формы (n_features, n_features), по умолчанию=None
Предвычисленная матрица Грама
X.T @ X, если'auto', матрица Грама предварительно вычисляется из заданного X, если количество образцов больше количества признаков.- max_iterint, по умолчанию=500
Максимальное количество итераций для выполнения, установлено в бесконечность для отсутствия ограничения.
- alpha_minfloat, по умолчанию=0
Минимальная корреляция вдоль пути. Соответствует параметру регуляризации
alphaв Lasso.- метод{'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
Возвращать ли количество итераций.
- положительныйbool, по умолчанию=False
Ограничить коэффициенты >= 0. Эта опция разрешена только с методом 'lasso'. Обратите внимание, что коэффициенты модели не будут сходиться к решению обычного метода наименьших квадратов для малых значений alpha. Только коэффициенты до наименьшего значения alpha (
alphas_[alphas_ > 0.].min()когда fit_path=True), достигнутые пошаговым алгоритмом Lars-Lasso, обычно соответствуют решению координатного спускаlasso_pathфункция.
- Возвращает:
- альфыndarray формы (n_alphas + 1,)
Максимум ковариаций (по абсолютному значению) на каждой итерации.
n_alphasявляется либоmax_iter,n_features, или количество узлов в пути сalpha >= alpha_min, в зависимости от того, что меньше.- активныйndarray формы (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Лассо с кросс-валидацией, использующий алгоритм LARS.
LarsCVКросс-валидированная модель регрессии наименьшего угла.
sklearn.decomposition.sparse_encodeРазреженное кодирование.
Ссылки
[1]“Least Angle Regression”, Efron et al. http://statweb.stanford.edu/~tibs/ftp/lars.pdf
Примеры
>>> 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]])