TheilSenRegressor#

class sklearn.linear_model.TheilSenRegressor(*, fit_intercept=True, max_subpopulation=10000.0, n_subsamples=None, max_iter=300, tol=0.001, random_state=None, n_jobs=None, verbose=False)[Quelle]#

Theil-Sen Estimator: robuster multivariater Regressionsmodell.

Der Algorithmus berechnet Least-Squares-Lösungen auf Teilmengen der Größe n_subsamples der Stichproben in X. Jeder Wert von n_subsamples zwischen der Anzahl der Merkmale und der Anzahl der Stichproben führt zu einem Schätzer mit einem Kompromiss zwischen Robustheit und Effizienz. Da die Anzahl der Least-Squares-Lösungen "n_samples choose n_subsamples" beträgt, kann sie extrem groß sein und daher mit max_subpopulation begrenzt werden. Wenn diese Grenze erreicht ist, werden die Teilmengen zufällig ausgewählt. In einem letzten Schritt wird der räumliche Median (oder L1-Median) aller Least-Squares-Lösungen berechnet.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
fit_interceptbool, Standardwert=True

Ob der Achsenabschnitt für dieses Modell berechnet werden soll. Wenn auf false gesetzt, wird kein Achsenabschnitt für die Berechnungen verwendet.

max_subpopulationint, default=1e4

Anstatt mit einer Menge der Kardinalität „n choose k“ zu rechnen, wobei n die Anzahl der Stichproben und k die Anzahl der Teilstichproben (mindestens die Anzahl der Merkmale) ist, wird nur eine stochastische Teilpopulation einer gegebenen maximalen Größe berücksichtigt, wenn „n choose k“ größer als max_subpopulation ist. Für andere als kleine Problemgrößen bestimmt dieser Parameter den Speicherverbrauch und die Laufzeit, wenn n_subsamples nicht geändert wird. Beachten Sie, dass der Datentyp int sein sollte, aber auch Gleitkommazahlen wie 1e4 akzeptiert werden können.

n_subsamplesint, default=None

Anzahl der Stichproben zur Berechnung der Parameter. Dies ist mindestens die Anzahl der Merkmale (plus 1, wenn fit_intercept=True) und maximal die Anzahl der Stichproben. Eine niedrigere Zahl führt zu einem höheren Zerfallspunkt und einer geringen Effizienz, während eine hohe Zahl zu einem niedrigen Zerfallspunkt und einer hohen Effizienz führt. Wenn None, wird die minimale Anzahl von Teilstichproben genommen, die maximale Robustheit gewährleistet. Wenn n_subsamples auf n_samples gesetzt ist, ist Theil-Sen identisch mit der kleinsten Quadrate.

max_iterint, Standard=300

Maximale Anzahl von Iterationen für die Berechnung des räumlichen Medians.

tolfloat, Standard=1e-3

Toleranz bei der Berechnung des räumlichen Medians.

random_stateint, RandomState-Instanz oder None, default=None

Eine Zufallszahlengenerator-Instanz zur Definition des Zustands des Zufallspermutationsgenerators. Übergeben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg. Siehe Glossar.

n_jobsint, default=None

Anzahl der CPUs, die während der Kreuzvalidierung verwendet werden sollen. None bedeutet 1, außer in einem joblib.parallel_backend-Kontext. -1 bedeutet die Verwendung aller Prozessoren. Siehe Glossar für weitere Details.

verbosebool, default=False

Verbose-Modus beim Anpassen des Modells.

Attribute:
coef_ndarray von Form (n_features,)

Koeffizienten des Regressionsmodells (Median der Verteilung).

intercept_float

Geschätzter Achsenabschnitt des Regressionsmodells.

breakdown_float

Angenäherter Zerfallspunkt.

n_iter_int

Anzahl der für den räumlichen Median benötigten Iterationen.

n_subpopulation_int

Anzahl der berücksichtigten Kombinationen aus „n choose k“, wobei n die Anzahl der Stichproben und k die Anzahl der Teilstichproben ist.

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

HuberRegressor

Lineares Regressionsmodell, das robust gegenüber Ausreißern ist.

RANSACRegressor

RANSAC (RANdom SAmple Consensus) Algorithmus.

SGDRegressor

Angepasst durch Minimierung eines regulierten empirischen Verlusts mit SGD.

Referenzen

Beispiele

>>> from sklearn.linear_model import TheilSenRegressor
>>> from sklearn.datasets import make_regression
>>> X, y = make_regression(
...     n_samples=200, n_features=2, noise=4.0, random_state=0)
>>> reg = TheilSenRegressor(random_state=0).fit(X, y)
>>> reg.score(X, y)
0.9884
>>> reg.predict(X[:1,])
array([-31.5871])
fit(X, y)[Quelle]#

Lineares Modell anpassen.

Parameter:
Xndarray der Form (n_samples, n_features)

Trainingsdaten.

yndarray der Form (n_samples,)

Zielwerte.

Gibt zurück:
selfgibt eine Instanz von self zurück.

Angepasster TheilSenRegressor-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.

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 Summe der quadrierten Residuen ist ((y_true - y_pred)** 2).sum() und \(v\) die Summe der quadrierten Abweichungen vom Mittelwert ist ((y_true - y_true.mean()) ** 2).sum(). Der bestmögliche Score ist 1,0 und er kann negativ sein (weil das Modell beliebig schlechter sein kann). Ein konstantes Modell, das immer den Erwartungswert von y vorhersagt, unabhängig von den Eingabemerkmalen, 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), 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

Der \(R^2\)-Score, der 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 sein. Dies beeinflusst die score-Methode aller Multi-Output-Regressoren (außer MultiOutputRegressor).

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$') TheilSenRegressor[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.