PassiveAggressiveRegressor#
- class sklearn.linear_model.PassiveAggressiveRegressor(*, C=1.0, fit_intercept=True, max_iter=1000, tol=0.001, early_stopping=False, validation_fraction=0.1, n_iter_no_change=5, shuffle=True, verbose=0, loss='epsilon_insensitive', epsilon=0.1, random_state=None, warm_start=False, average=False)[Quelle]#
Passiver aggressiver Regressor.
Veraltet seit Version 1.8: Die gesamte Klasse
PassiveAggressiveRegressorwurde in Version 1.8 als veraltet markiert und wird in 1.10 entfernt. Verwenden Sie stattdessenreg = SGDRegressor( loss="epsilon_insensitive", penalty=None, learning_rate="pa1", # or "pa2" eta0=1.0, # for parameter C )
Lesen Sie mehr im Benutzerhandbuch.
- Parameter:
- Cfloat, Standardwert=1.0
Aggressivitäts-Parameter für den passiv-aggressiven Algorithmus, siehe [1]. Für PA-I ist dies die maximale Schrittgröße. Für PA-II reguliert es die Schrittgröße (je kleiner
C, desto mehr wird reguliert). Als allgemeine Faustregel sollteCklein sein, wenn die Daten verrauscht sind.- fit_interceptbool, Standardwert=True
Ob der Achsenabschnitt geschätzt werden soll oder nicht. Wenn False, wird angenommen, dass die Daten bereits zentriert sind. Standardwert ist True.
- max_iterint, default=1000
Die maximale Anzahl von Durchläufen über die Trainingsdaten (auch Epochen genannt). Dies wirkt sich nur auf das Verhalten in der
fit-Methode aus und nicht auf diepartial_fit-Methode.Hinzugefügt in Version 0.19.
- tolfloat oder None, default=1e-3
Das Abbruchkriterium. Wenn es nicht None ist, stoppen die Iterationen, wenn (loss > previous_loss - tol).
Hinzugefügt in Version 0.19.
- early_stoppingbool, default=False
Ob Early Stopping verwendet werden soll, um das Training zu beenden, wenn die Validierungsbewertung nicht verbessert wird. Wenn True gesetzt, werden automatisch ein Bruchteil der Trainingsdaten als Validierungsdaten beiseitegelegt und das Training beendet, wenn die Validierungsbewertung nicht für n_iter_no_change aufeinanderfolgende Epochen um mindestens tol verbessert wird.
Hinzugefügt in Version 0.20.
- validation_fractionfloat, default=0.1
Der Anteil der Trainingsdaten, der als Validierungsdatensatz für Early Stopping beiseitegelegt werden soll. Muss zwischen 0 und 1 liegen. Wird nur verwendet, wenn early_stopping True ist.
Hinzugefügt in Version 0.20.
- n_iter_no_changeint, default=5
Anzahl der Iterationen ohne Verbesserung, auf die gewartet werden soll, bevor Early Stopping angewendet wird.
Hinzugefügt in Version 0.20.
- shufflebool, Standard=True
Ob die Trainingsdaten nach jeder Epoche gemischt werden sollen oder nicht.
- verboseint, default=0
Die Ausführlichkeitsstufe.
- lossstr, Standardwert=”epsilon_insensitive”
Die zu verwendende Verlustfunktion: epsilon_insensitive: entspricht PA-I im Referenzpapier. squared_epsilon_insensitive: entspricht PA-II im Referenzpapier.
- epsilonfloat, default=0.1
Wenn die Differenz zwischen der aktuellen Vorhersage und dem korrekten Label unter diesem Schwellenwert liegt, wird das Modell nicht aktualisiert.
- random_stateint, RandomState instance, default=None
Wird zum Mischen der Trainingsdaten verwendet, wenn
shuffleaufTruegesetzt ist. Geben Sie eine ganze Zahl für reproduzierbare Ausgaben über mehrere Funktionsaufrufe hinweg an. Siehe Glossar.- warm_startbool, Standard=False
Wenn auf True gesetzt, wird die Lösung des vorherigen Aufrufs von fit als Initialisierung wiederverwendet, andernfalls wird die vorherige Lösung einfach verworfen. Siehe das Glossar.
Wiederholtes Aufrufen von fit oder partial_fit, wenn warm_start True ist, kann zu einer anderen Lösung führen als bei einem einzigen Aufruf von fit, da die Daten auf unterschiedliche Weise gemischt werden.
- averagebool oder int, default=False
Wenn True gesetzt, werden die gemittelten SGD-Gewichte berechnet und das Ergebnis im Attribut
coef_gespeichert. Wenn größer als 1 gesetzt, beginnt die Mittelung, sobald die Gesamtzahl der gesehenen Stichproben den Wert von average erreicht. Also average=10 beginnt mit der Mittelung nach dem Sehen von 10 Stichproben.Hinzugefügt in Version 0.19: Parameter average zur Verwendung der Gewichte-Mittelung in SGD.
- Attribute:
- coef_array, Form = [1, n_features] wenn n_classes == 2 else [n_classes, n_features]
Den Merkmalen zugeordnete Gewichte.
- intercept_array, Form = [1] wenn n_classes == 2 else [n_classes]
Konstanten in der Entscheidungsfunktion.
- 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
XMerkmalnamen hat, die alle Zeichenketten sind.Hinzugefügt in Version 1.0.
- n_iter_int
Die tatsächliche Anzahl der Iterationen, um das Abbruchkriterium zu erreichen.
- t_int
Anzahl der während des Trainings durchgeführten Gewichtungsaktualisierungen. Gleich wie
(n_iter_ * n_samples + 1).
Siehe auch
SGDRegressorLineares Modell, das durch Minimierung eines regularisierten empirischen Verlusts mit SGD angepasst wird.
Referenzen
Online Passive-Aggressive Algorithms <http://jmlr.csail.mit.edu/papers/volume7/crammer06a/crammer06a.pdf> K. Crammer, O. Dekel, J. Keshat, S. Shalev-Shwartz, Y. Singer - JMLR (2006).
Beispiele
>>> from sklearn.linear_model import PassiveAggressiveRegressor >>> from sklearn.datasets import make_regression
>>> X, y = make_regression(n_features=4, random_state=0) >>> regr = PassiveAggressiveRegressor(max_iter=100, random_state=0, ... tol=1e-3) >>> regr.fit(X, y) PassiveAggressiveRegressor(max_iter=100, random_state=0) >>> print(regr.coef_) [20.48736655 34.18818427 67.59122734 87.94731329] >>> print(regr.intercept_) [-0.02306214] >>> print(regr.predict([[0, 0, 0, 0]])) [-0.02306214]
- densify()[Quelle]#
Konvertiert die Koeffizientenmatrix in ein dichtes Array-Format.
Konvertiert das Mitglied
coef_(zurück) in ein numpy.ndarray. Dies ist das Standardformat voncoef_und wird für das Training benötigt, daher muss diese Methode nur auf Modellen aufgerufen werden, die zuvor verknappt wurden; andernfalls ist sie eine No-Op.- Gibt zurück:
- self
Angepasster Schätzer.
- fit(X, y, coef_init=None, intercept_init=None)[Quelle]#
Trainiert das lineare Modell mit dem passiv-aggressiven Algorithmus.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Trainingsdaten.
- ynumpy array der Form [n_samples]
Zielwerte.
- coef_initarray, Form = [n_features]
Die anfänglichen Koeffizienten zum Aufwärmen der Optimierung.
- intercept_initarray, Form = [1]
Der anfängliche Achsenabschnitt zum Aufwärmen der Optimierung.
- Gibt zurück:
- selfobject
Angepasster Schätzer.
- get_metadata_routing()[Quelle]#
Holt das Metadaten-Routing dieses Objekts.
Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.
- Gibt zurück:
- routingMetadataRequest
Ein
MetadataRequest, der 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.
- partial_fit(X, y)[Quelle]#
Trainiert das lineare Modell mit dem passiv-aggressiven Algorithmus.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Teilmenge der Trainingsdaten.
- ynumpy array der Form [n_samples]
Teilmenge der Zielwerte.
- Gibt zurück:
- selfobject
Angepasster Schätzer.
- predict(X)[Quelle]#
Vorhersage mit dem linearen Modell.
- Parameter:
- X{array-like, sparse matrix}, shape (n_samples, n_features)
Eingabedaten.
- Gibt zurück:
- ndarray der Form (n_samples,)
Vorhergesagte Zielwerte pro Element in X.
- 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 Summe der quadrierten Residuen ist
((y_true - y_pred)** 2).sum()und \(v\) die Summe der quadrierten Gesamtwerte ist((y_true - y_true.mean()) ** 2).sum(). Der beste mögliche Score ist 1.0 und er kann negativ sein (da das Modell beliebig schlechter sein kann). Ein konstantes Modell, das immer den erwarteten Wert vonyvorhersagt, ohne die Eingabemerkmale zu berücksichtigen, würde einen \(R^2\)-Score 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), wobein_samples_fitteddie 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 aufy.
Anmerkungen
Der \(R^2\)-Score, der beim Aufrufen von
scorefür einen Regressor verwendet wird, nutztmultioutput='uniform_average'ab Version 0.23, um konsistent mit dem Standardwert vonr2_scorezu sein. Dies beeinflusst diescore-Methode aller Multi-Output-Regressoren (mit Ausnahme vonMultiOutputRegressor).
- set_fit_request(*, coef_init: bool | None | str = '$UNCHANGED$', intercept_init: bool | None | str = '$UNCHANGED$') PassiveAggressiveRegressor[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=Trueaktiviert ist (siehesklearn.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, anfitübergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht anfit.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:
- coef_initstr, True, False, oder None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadaten-Routing für den Parameter
coef_initinfit.- intercept_initstr, True, False, oder None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadaten-Routing für den Parameter
intercept_initinfit.
- 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_partial_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') PassiveAggressiveRegressor[Quelle]#
Konfiguriert, ob Metadaten für die
partial_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=Trueaktiviert ist (siehesklearn.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 anpartial_fitübergeben, wenn sie bereitgestellt werden. Die Anforderung wird ignoriert, wenn keine Metadaten bereitgestellt werden.False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht anpartial_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_weightinpartial_fit.
- Gibt zurück:
- selfobject
Das aktualisierte Objekt.
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') PassiveAggressiveRegressor[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=Trueaktiviert ist (siehesklearn.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, anscoreübergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht anscore.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_weightinscore.
- Gibt zurück:
- selfobject
Das aktualisierte Objekt.
- sparsify()[Quelle]#
Koeffizientenmatrix in Sparse-Format konvertieren.
Konvertiert das
coef_-Mitglied in eine scipy.sparse-Matrix, die für Modelle mit L1-Regularisierung speicher- und speichereffizienter sein kann als die übliche numpy.ndarray-Darstellung.Das
intercept_-Mitglied wird nicht konvertiert.- Gibt zurück:
- self
Angepasster Schätzer.
Anmerkungen
Für nicht-sparse Modelle, d.h. wenn nicht viele Nullen in
coef_vorhanden sind, kann dies tatsächlich den Speicherverbrauch *erhöhen*, also verwenden Sie diese Methode mit Vorsicht. Eine Faustregel besagt, dass die Anzahl der Nullelemente, die mit(coef_ == 0).sum()berechnet werden kann, mehr als 50 % betragen muss, damit dies signifikante Vorteile bringt.Nach dem Aufruf dieser Methode funktioniert die weitere Anpassung mit der Methode
partial_fit(falls vorhanden) nicht mehr, bis Siedensifyaufrufen.