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
Noneist, muss auch GramNonesein. Wenn nur die Gram-Matrix verfügbar ist, verwenden Sie stattdessenlars_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
alphaim 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, wirdXü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, wirdGramü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 Koordinatendescendenzfunktionlasso_pathüberein.
- Gibt zurück:
- alphasndarray der Form (n_alphas + 1,)
Maximale Kovarianzen (im Betrag) bei jeder Iteration.
n_alphasist entwedermax_iter,n_featuresoder die Anzahl der Knoten im Pfad mitalpha >= 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_iterauf True gesetzt ist.
Siehe auch
lars_path_gramBerechnet den LARS-Pfad im Modus der ausreichenden Statistiken.
lasso_pathBerechnet den Lasso-Pfad mit Koordinatenabstieg.
LassoLarsLasso-Modell, angepasst mit Least Angle Regression, auch bekannt als Lars.
LarsLeast Angle Regression Modell, auch bekannt als LAR.
LassoLarsCVKreuzvalidiertes Lasso unter Verwendung des LARS-Algorithmus.
LarsCVKreuzvalidiertes Least Angle Regression Modell.
sklearn.decomposition.sparse_encodeSparse Coding.
Referenzen
[1]„Least Angle Regression“, Efron et al. http://statweb.stanford.edu/~tibs/ftp/lars.pdf
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]])