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)[Quelle]#

Berechnet den Least Angle Regression oder Lasso-Pfad mit dem LARS-Algorithmus.

Das Optimierungsziel für die Methode `method='lasso'` ist

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

Im Falle von `method='lar'` ist die Zielfunktion nur in Form einer impliziten Gleichung bekannt (siehe Diskussion in [1]).

Mehr dazu im Benutzerhandbuch.

Parameter:
XNone oder ndarray der Form (n_samples, n_features)

Eingabedaten. Wenn X None ist, muss auch Gram None sein. Wenn nur die Gram-Matrix verfügbar ist, verwenden Sie stattdessen lars_path_gram.

yNone oder ndarray der Form (n_samples,)

Eingabewerte.

Xyarray-ähnlich der Form (n_features,), Standard=None

Xy = X.T @ y, das vorab berechnet werden kann. Es ist nur nützlich, wenn die Gram-Matrix vorab berechnet wird.

GramNone, 'auto', bool, ndarray der Form (n_features, n_features), Standard=None

Vorab berechnete Gram-Matrix X.T @ X, wenn 'auto', wird die Gram-Matrix aus dem gegebenen X vorab berechnet, wenn es mehr Samples als Features gibt.

max_iterint, Standard=500

Maximale Anzahl von Iterationen, die durchgeführt werden sollen, auf unendlich gesetzt für keine Begrenzung.

alpha_minfloat, Standard=0

Minimale Korrelation entlang des Pfades. Sie entspricht dem Regularisierungsparameter alpha im Lasso.

method{‘lar’, ‘lasso’}, Standard=’lar’

Gibt das zurückgegebene Modell an. Wählen Sie 'lar' für Least Angle Regression, 'lasso' für das Lasso.

copy_Xbool, Standardwert=True

Wenn False, wird X überschrieben.

epsfloat, default=np.finfo(float).eps

Die maschinenpräzise Regularisierung bei der Berechnung der diagonalen Cholesky-Faktoren. Erhöhen Sie dies für sehr schlecht konditionierte Systeme. Im Gegensatz zum tol-Parameter in einigen iterativen optimierungsbasierten Algorithmen steuert dieser Parameter nicht die Toleranz der Optimierung.

copy_Grambool, Standard=True

Wenn False, wird Gram überschrieben.

verboseint, default=0

Steuert die Ausführlichkeit der Ausgabe.

return_pathbool, Standard=True

Wenn True, wird der gesamte Pfad zurückgegeben, andernfalls nur der letzte Punkt des Pfades.

return_n_iterbool, Standard=False

Ob die Anzahl der Iterationen zurückgegeben werden soll.

positivebool, Standardwert=False

Beschränkt Koeffizienten auf >= 0. Diese Option ist nur mit der Methode 'lasso' zulässig. Beachten Sie, dass die Modellkoeffizienten für kleine Alpha-Werte nicht mit der Ordinary-Least-Squares-Lösung konvergieren. Nur Koeffizienten bis zum kleinsten Alpha-Wert (alphas_[alphas_ > 0.].min(), wenn fit_path=True) des schrittweisen Lars-Lasso-Algorithmus stimmen typischerweise mit der Lösung der Koordinatendescendenzfunktion lasso_path überein.

Gibt zurück:
alphasndarray der Form (n_alphas + 1,)

Maximale Kovarianzen (im Betrag) bei jeder Iteration. n_alphas ist entweder max_iter, n_features oder die Anzahl der Knoten im Pfad mit alpha >= alpha_min, je nachdem, welcher Wert kleiner ist.

activendarray der Form (n_alphas,)

Indizes der aktiven Variablen am Ende des Pfades.

coefsndarray der Form (n_features, n_alphas + 1)

Koeffizienten entlang des Pfades.

n_iterint

Anzahl der durchgeführten Iterationen. Wird nur zurückgegeben, wenn return_n_iter auf True gesetzt ist.

Siehe auch

lars_path_gram

Berechnet den LARS-Pfad im Modus der ausreichenden Statistiken.

lasso_path

Berechnet den Lasso-Pfad mit Koordinatenabstieg.

LassoLars

Lasso-Modell, angepasst mit Least Angle Regression, auch bekannt als Lars.

Lars

Least Angle Regression Modell, auch bekannt als LAR.

LassoLarsCV

Kreuzvalidiertes Lasso unter Verwendung des LARS-Algorithmus.

LarsCV

Kreuzvalidiertes Least Angle Regression Modell.

sklearn.decomposition.sparse_encode

Sparse Coding.

Referenzen

Beispiele

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