MultiTaskLassoCV#

class sklearn.linear_model.MultiTaskLassoCV(*, eps=0.001, n_alphas='deprecated', alphas='warn', fit_intercept=True, max_iter=1000, tol=0.0001, copy_X=True, cv=None, verbose=False, n_jobs=None, random_state=None, selection='cyclic')[Quelle]#

Multi-Task Lasso Modell, trainiert mit L1/L2 Mixed-Norm als Regularisator.

Siehe Glossareintrag für Cross-validation-Schätzer.

Die Optimierungsziel für MultiTaskLasso ist

(1 / (2 * n_samples)) * ||Y - XW||^Fro_2 + alpha * ||W||_21

Wo

||W||_21 = \sum_i \sqrt{\sum_j w_{ij}^2}

d.h. die Summe der Norm jeder Zeile.

Lesen Sie mehr im Benutzerhandbuch.

Hinzugefügt in Version 0.15.

Parameter:
epsfloat, Standardwert=1e-3

Länge des Pfades. eps=1e-3 bedeutet, dass alpha_min / alpha_max = 1e-3.

n_alphasint, Standardwert=100

Anzahl der Alphas entlang des Regularisierungspfades.

Veraltet seit Version 1.7: n_alphas wurde in Version 1.7 als veraltet markiert und wird in Version 1.9 entfernt. Verwenden Sie stattdessen alphas.

alphasarray-ähnlich oder int, Standardwert=None

Werte von alphas zum Testen entlang des Regularisierungspfades. Wenn int, werden alphas Werte automatisch generiert. Wenn Array-ähnlich, Liste der zu verwendenden alpha-Werte.

Geändert in Version 1.7: alphas akzeptiert einen ganzzahligen Wert, was die Notwendigkeit entfällt, n_alphas zu übergeben.

Veraltet seit Version 1.7: alphas=None wurde in Version 1.7 als veraltet markiert und wird in Version 1.9 entfernt. Zu diesem Zeitpunkt wird der Standardwert auf 100 gesetzt.

fit_interceptbool, Standardwert=True

Ob für dieses Modell ein Achsenabschnitt berechnet werden soll. Wenn auf False gesetzt, wird kein Achsenabschnitt in Berechnungen verwendet (d.h. die Daten werden als zentriert erwartet).

max_iterint, default=1000

Die maximale Anzahl von Iterationen.

tolfloat, Standard=1e-4

Die Toleranz für die Optimierung: Wenn die Aktualisierungen kleiner oder gleich tol sind, prüft der Optimierungscode den dualen Abstand auf Optimalität und fährt fort, bis er kleiner oder gleich tol ist.

copy_Xbool, Standardwert=True

Wenn True, wird X kopiert; andernfalls kann es überschrieben werden.

cvint, Kreuzvalidierungsgenerator oder Iterable, Standardwert=None

Bestimmt die Strategie der Kreuzvalidierungsaufteilung. Mögliche Eingaben für cv sind

  • None, um die standardmäßige 5-fache Kreuzvalidierung zu verwenden,

  • int, um die Anzahl der Folds anzugeben.

  • CV-Splitter,

  • Eine iterierbare Liste, die (Trainings-, Test-) Splits als Indizes-Arrays liefert.

Für int/None-Eingaben wird KFold verwendet.

Siehe Benutzerhandbuch für die verschiedenen Kreuzvalidierungsstrategien, die hier verwendet werden können.

Geändert in Version 0.22: Der Standardwert von cv, wenn None, hat sich von 3-Fold auf 5-Fold geändert.

verbosebool oder int, default=False

Ausmaß der Ausführlichkeit.

n_jobsint, default=None

Anzahl der CPUs, die während der Kreuzvalidierung verwendet werden sollen. Beachten Sie, dass dies nur verwendet wird, wenn mehrere Werte für l1_ratio angegeben werden. None bedeutet 1, außer in einem joblib.parallel_backend Kontext. -1 bedeutet die Verwendung aller Prozessoren. Siehe Glossar für weitere Details.

random_stateint, RandomState instance, default=None

Der Seed des Pseudo-Zufallszahlengenerators, der ein zufälliges Merkmal zur Aktualisierung auswählt. Wird verwendet, wenn selection == ‘random‘ ist. Übergeben Sie eine Ganzzahl für reproduzierbare Ausgaben über mehrere Funktionsaufrufe hinweg. Siehe Glossar.

selection{‘cyclic’, ‘random’}, Standardwert=’cyclic’

Wenn auf ‘random‘ gesetzt, wird ein zufälliger Koeffizient in jeder Iteration aktualisiert, anstatt standardmäßig sequenziell durch die Merkmale zu iterieren. Dies (Setzen auf ‘random‘) führt oft zu einer signifikant schnelleren Konvergenz, insbesondere wenn tol höher als 1e-4 ist.

Attribute:
intercept_ndarray von der Form (n_targets,)

Unabhängiger Term in der Entscheidungsfunktion.

coef_ndarray von der Form (n_targets, n_features)

Parametervektor (W in der Formel der Kostenfunktion). Beachten Sie, dass coef_ die Transponierte von W speichert, W.T.

alpha_float

Die durch Kreuzvalidierung gewählte Strafe.

mse_path_ndarray der Form (n_alphas, n_folds)

Mittlerer quadratischer Fehler für den Testdatensatz auf jedem Fold, variierend nach Alpha.

alphas_ndarray der Form (n_alphas,)

Das Raster der alphas, das für die Anpassung verwendet wird.

n_iter_int

Anzahl der Iterationen, die vom Koordinatenabstiegslöser durchgeführt wurden, um die angegebene Toleranz für das optimale Alpha zu erreichen.

dual_gap_float

Die duale Lücke am Ende der Optimierung für das optimale alpha.

n_features_in_int

Anzahl der während des fits gesehenen Merkmale.

Hinzugefügt in Version 0.24.

feature_names_in_ndarray mit Form (n_features_in_,)

Namen der während fit gesehenen Merkmale. Nur definiert, wenn X Merkmalnamen hat, die alle Zeichenketten sind.

Hinzugefügt in Version 1.0.

Siehe auch

MultiTaskElasticNet

Multi-Task ElasticNet Modell, trainiert mit L1/L2 Mixed-Norm als Regularisator.

ElasticNetCV

Elastic-Net-Modell mit bester Modellauswahl durch Kreuzvalidierung.

MultiTaskElasticNetCV

Multi-Task L1/L2 ElasticNet mit integrierter Kreuzvalidierung.

Anmerkungen

Der Algorithmus, der zur Anpassung des Modells verwendet wird, ist Koordinatenabstieg.

In fit wird das Modell, sobald der beste Parameter alpha durch Kreuzvalidierung gefunden wurde, erneut mit dem gesamten Trainingsdatensatz trainiert.

Um unnötige Speicherduplikation zu vermeiden, sollten die Argumente X und y der Methode fit direkt als Fortran-kontinuierliche numpy-Arrays übergeben werden.

Beispiele

>>> from sklearn.linear_model import MultiTaskLassoCV
>>> from sklearn.datasets import make_regression
>>> from sklearn.metrics import r2_score
>>> X, y = make_regression(n_targets=2, noise=4, random_state=0)
>>> reg = MultiTaskLassoCV(cv=5, random_state=0).fit(X, y)
>>> r2_score(y, reg.predict(X))
0.9994
>>> reg.alpha_
np.float64(0.4321...)
>>> reg.predict(X[:1,])
array([[153.7971,  94.9015]])
fit(X, y, **params)[Quelle]#

Passt das MultiTaskLasso-Modell mit Koordinatenabstieg an.

Die Anpassung erfolgt auf einem Gitter von Alphas und dem besten durch Kreuzvalidierung geschätzten Alpha.

Parameter:
Xndarray der Form (n_samples, n_features)

Daten.

yndarray der Form (n_samples, n_targets)

Ziel. Wird bei Bedarf an den Dtyp von X angepasst.

**paramsdict, default=None

Parameter, die an den CV-Splitter übergeben werden sollen.

Hinzugefügt in Version 1.4: Nur verfügbar, wenn enable_metadata_routing=True, was durch Verwendung von sklearn.set_config(enable_metadata_routing=True) eingestellt werden kann. Weitere Details finden Sie im Benutzerhandbuch für Metadaten-Routing.

Gibt zurück:
selfobject

Gibt eine Instanz des trainierten Modells zurück.

get_metadata_routing()[Quelle]#

Holt das Metadaten-Routing dieses Objekts.

Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.

Hinzugefügt in Version 1.4.

Gibt zurück:
routingMetadataRouter

Ein MetadataRouter, der die Routing-Informationen kapselt.

get_params(deep=True)[Quelle]#

Holt Parameter für diesen Schätzer.

Parameter:
deepbool, default=True

Wenn True, werden die Parameter für diesen Schätzer und die enthaltenen Unterobjekte, die Schätzer sind, zurückgegeben.

Gibt zurück:
paramsdict

Parameternamen, zugeordnet ihren Werten.

static path(X, y, *, eps=0.001, n_alphas=100, alphas=None, precompute='auto', Xy=None, copy_X=True, coef_init=None, verbose=False, return_n_iter=False, positive=False, **params)[Quelle]#

Berechnet den Lasso-Pfad mit Koordinatenabstieg.

Die Lasso-Optimierungsfunktion variiert für Mono- und Multi-Ausgaben.

Für Mono-Ausgaben-Aufgaben ist es

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

Für Multi-Ausgaben-Aufgaben ist es

(1 / (2 * n_samples)) * ||Y - XW||^2_Fro + alpha * ||W||_21

Wo

||W||_21 = \sum_i \sqrt{\sum_j w_{ij}^2}

d.h. die Summe der Norm jeder Zeile.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Trainingsdaten. Direkt als Fortran-kontinuierliche Daten übergeben, um unnötige Speicherduplizierung zu vermeiden. Wenn y eine Mono-Ausgabe ist, kann X spärlich sein.

y{array-ähnlich, spärsitätsmatrix} der Form (n_samples,) oder (n_samples, n_targets)

Zielwerte.

epsfloat, Standardwert=1e-3

Länge des Pfades. eps=1e-3 bedeutet, dass alpha_min / alpha_max = 1e-3.

n_alphasint, Standardwert=100

Anzahl der Alphas entlang des Regularisierungspfades.

alphasarray-ähnlich, Standardwert=None

Liste von Alphas, für die Modelle berechnet werden sollen. Wenn None, werden Alphas automatisch gesetzt.

precompute‘auto‘, bool oder array-ähnlich der Form (n_features, n_features), Standardwert=’auto’

Ob eine vorberechnete Gram-Matrix verwendet werden soll, um Berechnungen zu beschleunigen. Wenn auf 'auto' gesetzt, entscheiden wir. Die Gram-Matrix kann auch als Argument übergeben werden.

Xyarray-ähnlich der Form (n_features,) oder (n_features, n_targets), Standardwert=None

Xy = np.dot(X.T, y), was vorab berechnet werden kann. Dies ist nur nützlich, wenn die Gram-Matrix vorab berechnet wurde.

copy_Xbool, Standardwert=True

Wenn True, wird X kopiert; andernfalls kann es überschrieben werden.

coef_initarray-ähnlich der Form (n_features,), Standardwert=None

Die Anfangswerte der Koeffizienten.

verbosebool oder int, default=False

Ausmaß der Ausführlichkeit.

return_n_iterbool, Standard=False

Ob die Anzahl der Iterationen zurückgegeben werden soll oder nicht.

positivebool, Standardwert=False

Wenn True gesetzt, werden die Koeffizienten auf positiv erzwungen. (Nur erlaubt, wenn y.ndim == 1).

**paramskwargs

Schlüsselwortargumente, die an den Koordinatenabstiegslöser übergeben werden.

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

Die Alphas entlang des Pfades, auf dem Modelle berechnet werden.

coefsndarray der Form (n_features, n_alphas) oder (n_targets, n_features, n_alphas)

Koeffizienten entlang des Pfades.

dual_gapsndarray der Form (n_alphas,)

Die dualen Abstände am Ende der Optimierung für jedes Alpha.

n_iterslist von int

Die Anzahl der Iterationen, die der Koordinatenabstieg-Optimierer benötigt, um die angegebene Toleranz für jedes Alpha zu erreichen.

Siehe auch

lars_path

Berechnet den Least Angle Regression- oder Lasso-Pfad unter Verwendung des LARS-Algorithmus.

Lasso

Der Lasso ist ein lineares Modell, das spärliche Koeffizienten schätzt.

LassoLars

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

LassoCV

Lasso-Linearmodell mit iterativem Anpassen entlang eines Regularisierungspfades.

LassoLarsCV

Kreuzvalidiertes Lasso mit dem LARS-Algorithmus.

sklearn.decomposition.sparse_encode

Schätzer, der verwendet werden kann, um Signale in eine spärliche Linearkombination von Atomen aus einem festen Satz zu transformieren.

Anmerkungen

Ein Beispiel finden Sie unter Beispiele/linear_model/plot_lasso_lasso_lars_elasticnet_path.py.

Um unnötige Speicherduplizierung zu vermeiden, sollte das X-Argument der fit-Methode direkt als Fortran-kontinuierlicher numpy-Array übergeben werden.

Beachten Sie, dass in bestimmten Fällen der Lars-Solver erheblich schneller sein kann, um diese Funktionalität zu implementieren. Insbesondere kann lineare Interpolation verwendet werden, um Modellkoeffizienten zwischen den von lars_path ausgegebenen Werten abzurufen.

Der zugrunde liegende Koordinatenabstiegslöser verwendet "gap-safe screening rules", um die Anpassungszeit zu beschleunigen, siehe Benutzerhandbuch zum Koordinatenabstieg.

Beispiele

Vergleich von lasso_path und lars_path mit Interpolation

>>> import numpy as np
>>> from sklearn.linear_model import lasso_path
>>> X = np.array([[1, 2, 3.1], [2.3, 5.4, 4.3]]).T
>>> y = np.array([1, 2, 3.1])
>>> # Use lasso_path to compute a coefficient path
>>> _, coef_path, _ = lasso_path(X, y, alphas=[5., 1., .5])
>>> print(coef_path)
[[0.         0.         0.46874778]
 [0.2159048  0.4425765  0.23689075]]
>>> # Now use lars_path and 1D linear interpolation to compute the
>>> # same path
>>> from sklearn.linear_model import lars_path
>>> alphas, active, coef_path_lars = lars_path(X, y, method='lasso')
>>> from scipy import interpolate
>>> coef_path_continuous = interpolate.interp1d(alphas[::-1],
...                                             coef_path_lars[:, ::-1])
>>> print(coef_path_continuous([5., 1., .5]))
[[0.         0.         0.46915237]
 [0.2159048  0.4425765  0.23668876]]
predict(X)[Quelle]#

Vorhersage mit dem linearen Modell.

Parameter:
Xarray-like oder sparse matrix, Form (n_samples, n_features)

Stichproben.

Gibt zurück:
Carray, Form (n_samples,)

Gibt vorhergesagte Werte zurück.

score(X, y, sample_weight=None)[Quelle]#

Gibt den Bestimmtheitskoeffizienten auf Testdaten zurück.

Der Bestimmtheitskoeffizient, \(R^2\), ist definiert als \((1 - \frac{u}{v})\), wobei \(u\) die Residuenquadratsumme ist ((y_true - y_pred)** 2).sum() und \(v\) die totale Summe der Quadrate ist ((y_true - y_true.mean()) ** 2).sum(). Die bestmögliche Punktzahl ist 1.0 und sie kann negativ sein (da das Modell beliebig schlechter sein kann). Ein konstantes Modell, das immer den Erwartungswert von y vorhersagt, ohne die Eingabemerkmale zu berücksichtigen, würde eine \(R^2\)-Punktzahl von 0.0 erzielen.

Parameter:
Xarray-like der Form (n_samples, n_features)

Teststichproben. Für einige Schätzer kann dies eine vorab berechnete Kernelmatrix oder eine Liste von generischen Objekten sein, stattdessen mit der Form (n_samples, n_samples_fitted), wobei n_samples_fitted die Anzahl der für die Anpassung des Schätzers verwendeten Stichproben ist.

yarray-like der Form (n_samples,) oder (n_samples, n_outputs)

Wahre Werte für X.

sample_weightarray-like der Form (n_samples,), Standardwert=None

Stichprobengewichte.

Gibt zurück:
scorefloat

\(R^2\) von self.predict(X) bezogen auf y.

Anmerkungen

Die \(R^2\)-Punktzahl, die beim Aufruf von score auf einem Regressor verwendet wird, verwendet multioutput='uniform_average' ab Version 0.23, um konsistent mit dem Standardwert von r2_score zu bleiben. Dies beeinflusst die score-Methode aller Multi-Output-Regressoren (außer für MultiOutputRegressor).

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') MultiTaskLassoCV[Quelle]#

Konfiguriert, ob Metadaten für die fit-Methode angefordert werden sollen.

Beachten Sie, dass diese Methode nur relevant ist, wenn dieser Schätzer als Unter-Schätzer innerhalb eines Meta-Schätzers verwendet wird und Metadaten-Routing mit enable_metadata_routing=True aktiviert ist (siehe sklearn.set_config). Bitte lesen Sie das Benutzerhandbuch, um zu erfahren, wie der Routing-Mechanismus funktioniert.

Die Optionen für jeden Parameter sind

  • True: Metadaten werden angefordert und, falls vorhanden, an fit übergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.

  • False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht an fit.

  • None: Metadaten werden nicht angefordert und der Meta-Schätzer löst einen Fehler aus, wenn der Benutzer sie bereitstellt.

  • str: Metadaten sollten mit diesem Alias an den Meta-Schätzer übergeben werden und nicht mit dem ursprünglichen Namen.

Der Standardwert (sklearn.utils.metadata_routing.UNCHANGED) behält die bestehende Anforderung bei. Dies ermöglicht es Ihnen, die Anforderung für einige Parameter zu ändern und für andere nicht.

Hinzugefügt in Version 1.3.

Parameter:
sample_weightstr, True, False, oder None, Standardwert=sklearn.utils.metadata_routing.UNCHANGED

Metadaten-Routing für den Parameter sample_weight in fit.

Gibt zurück:
selfobject

Das aktualisierte Objekt.

set_params(**params)[Quelle]#

Setzt die Parameter dieses Schätzers.

Die Methode funktioniert sowohl bei einfachen Schätzern als auch bei verschachtelten Objekten (wie Pipeline). Letztere haben Parameter der Form <component>__<parameter>, so dass es möglich ist, jede Komponente eines verschachtelten Objekts zu aktualisieren.

Parameter:
**paramsdict

Schätzer-Parameter.

Gibt zurück:
selfestimator instance

Schätzer-Instanz.

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') MultiTaskLassoCV[Quelle]#

Konfiguriert, ob Metadaten für die score-Methode angefordert werden sollen.

Beachten Sie, dass diese Methode nur relevant ist, wenn dieser Schätzer als Unter-Schätzer innerhalb eines Meta-Schätzers verwendet wird und Metadaten-Routing mit enable_metadata_routing=True aktiviert ist (siehe sklearn.set_config). Bitte lesen Sie das Benutzerhandbuch, um zu erfahren, wie der Routing-Mechanismus funktioniert.

Die Optionen für jeden Parameter sind

  • True: Metadaten werden angefordert und, falls vorhanden, an score übergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.

  • False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht an score.

  • None: Metadaten werden nicht angefordert und der Meta-Schätzer löst einen Fehler aus, wenn der Benutzer sie bereitstellt.

  • str: Metadaten sollten mit diesem Alias an den Meta-Schätzer übergeben werden und nicht mit dem ursprünglichen Namen.

Der Standardwert (sklearn.utils.metadata_routing.UNCHANGED) behält die bestehende Anforderung bei. Dies ermöglicht es Ihnen, die Anforderung für einige Parameter zu ändern und für andere nicht.

Hinzugefügt in Version 1.3.

Parameter:
sample_weightstr, True, False, oder None, Standardwert=sklearn.utils.metadata_routing.UNCHANGED

Metadaten-Routing für den Parameter sample_weight in score.

Gibt zurück:
selfobject

Das aktualisierte Objekt.