lars_path_gram#
- sklearn.linear_model.lars_path_gram(Xy, Gram, *, n_samples, 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]#
Der lars_path im Modus der ausreichenden Statistiken.
Die Optimierungsfunktion für den Fall method=’lasso’ ist
(1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1
Im Fall von method=’lar’ ist die Zielfunktion nur in Form einer impliziten Gleichung bekannt (siehe Diskussion in [1]).
Mehr dazu im Benutzerhandbuch.
- Parameter:
- Xyndarray der Form (n_features,)
Xy = X.T @ y.- Gramndarray der Form (n_features, n_features)
Gram = X.T @ X.- n_samplesint
Entsprechende Stichprobengröße.
- max_iterint, Standard=500
Maximale Anzahl der durchzuführenden Iterationen, unendlich für keine Begrenzung.
- alpha_minfloat, default=0
Minimale Korrelation entlang des Pfades. Sie entspricht dem Regularisierungsparameter alpha im Lasso.
- method{‘lar’, ‘lasso’}, default=’lar’
Gibt das zurückgegebene Modell an. Wählen Sie
'lar'für Least Angle Regression,'lasso'für 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, default=True
Wenn
return_path==True, wird der gesamte Pfad zurückgegeben, andernfalls wird nur der letzte Punkt des Pfades zurückgegeben.- 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 method=’lasso’ zulässig. Beachten Sie, dass die Modellkoeffizienten für kleine alpha-Werte nicht mit der Lösung der gewöhnlichen kleinsten Quadrate konvergieren. Nur Koeffizienten bis zum kleinsten alpha-Wert (
alphas_[alphas_ > 0.].min()wennfit_path=True) des schrittweisen Lars-Lasso-Algorithmus stimmen typischerweise mit der Lösung der Lasso-Pfad-Funktion mit Koordinatenabstieg überein.
- Gibt zurück:
- alphasndarray der Form (n_alphas + 1,)
Maximum der Kovarianzen (im Absolutwert) 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.
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_gram >>> 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_gram(X.T @ y, X.T @ X, n_samples=100) >>> alphas.shape (3,) >>> estimated_coef array([[ 0. , 0. , 0. ], [ 0. , 0. , 0. ], [ 0. , 0. , 0. ], [ 0. , 46.96, 97.99], [ 0. , 0. , 45.70]])