RANSACRegressor#

class sklearn.linear_model.RANSACRegressor(estimator=None, *, min_samples=None, residual_threshold=None, is_data_valid=None, is_model_valid=None, max_trials=100, max_skips=inf, stop_n_inliers=inf, stop_score=inf, stop_probability=0.99, loss='absolute_error', random_state=None)[source]#

RANSAC (RANdom SAmple Consensus) Algorithmus.

RANSAC ist ein iterativer Algorithmus zur robusten Schätzung von Parametern aus einer Teilmenge von Inliern des vollständigen Datensatzes.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
estimatorobject, Standard=None

Basis-Estimator-Objekt, das die folgenden Methoden implementiert

  • fit(X, y): Modell an gegebene Trainingsdaten und Zielwerte anpassen.

  • score(X, y): Gibt die mittlere Genauigkeit auf den gegebenen Testdaten zurück, die für das durch stop_score definierte Abbruchkriterium verwendet wird. Zusätzlich wird der Score verwendet, um zu entscheiden, welche von zwei gleich großen Konsensmengen als die bessere gewählt wird.

  • predict(X): Gibt vorhergesagte Werte unter Verwendung des linearen Modells zurück, die zur Berechnung des Residuenfehlers mit der Verlustfunktion verwendet werden.

Wenn estimator None ist, wird LinearRegression für Zielwerte vom Typ float verwendet.

Beachten Sie, dass die aktuelle Implementierung nur Regressionsschätzer unterstützt.

min_samplesint (>= 1) oder float ([0, 1]), Standard=None

Minimale Anzahl von Stichproben, die zufällig aus den Originaldaten ausgewählt werden. Behandelt als absolute Anzahl von Stichproben für min_samples >= 1, behandelt als relative Anzahl ceil(min_samples * X.shape[0]) für min_samples < 1. Dies wird typischerweise als die minimale Anzahl von Stichproben gewählt, die zur Schätzung des gegebenen estimator notwendig sind. Standardmäßig wird ein LinearRegression-Estimator angenommen und min_samples als X.shape[1] + 1 gewählt. Dieser Parameter ist stark vom Modell abhängig, daher muss der Benutzer einen Wert angeben, wenn ein anderer Estimator als LinearRegression verwendet wird.

residual_thresholdfloat, Standard=None

Maximaler Residuenwert, damit eine Datenstichprobe als Inlier klassifiziert wird. Standardmäßig wird der Schwellenwert als MAD (Median Absolute Deviation) der Zielwerte y gewählt. Punkte, deren Residuen streng gleich dem Schwellenwert sind, werden als Inlier betrachtet.

is_data_validcallable, Standard=None

Diese Funktion wird mit den zufällig ausgewählten Daten aufgerufen, bevor das Modell an sie angepasst wird: is_data_valid(X, y). Wenn ihr Rückgabewert False ist, wird die aktuell zufällig ausgewählte Teilmenge übersprungen.

is_model_validcallable, Standard=None

Diese Funktion wird mit dem geschätzten Modell und den zufällig ausgewählten Daten aufgerufen: is_model_valid(model, X, y). Wenn ihr Rückgabewert False ist, wird die aktuell zufällig ausgewählte Teilmenge übersprungen. Das Ablehnen von Stichproben mit dieser Funktion ist rechnerisch aufwändiger als mit is_data_valid. is_model_valid sollte daher nur verwendet werden, wenn das geschätzte Modell zur Entscheidungsfindung für die Ablehnung benötigt wird.

max_trialsint, Standard=100

Maximale Anzahl von Iterationen für die zufällige Stichprobenauswahl.

max_skipsint, Standard=np.inf

Maximale Anzahl von Iterationen, die übersprungen werden können, wenn keine Inlier gefunden werden oder ungültige Daten gemäß is_data_valid oder ungültige Modelle gemäß is_model_valid definiert sind.

Hinzugefügt in Version 0.19.

stop_n_inliersint, Standard=np.inf

Iteration stoppen, wenn mindestens diese Anzahl von Inliern gefunden wird.

stop_scorefloat, Standard=np.inf

Iteration stoppen, wenn der Score größer oder gleich diesem Schwellenwert ist.

stop_probabilityfloat im Bereich [0, 1], Standard=0.99

RANSAC-Iteration stoppt, wenn mindestens eine ausreißerfreie Menge der Trainingsdaten in RANSAC ausgewählt wird. Dies erfordert die Generierung von mindestens N Stichproben (Iterationen)

N >= log(1 - probability) / log(1 - e**m)

wobei die Wahrscheinlichkeit (Konfidenz) typischerweise auf einen hohen Wert wie 0.99 (Standard) gesetzt wird und e der aktuelle Anteil der Inlier bezogen auf die Gesamtzahl der Stichproben ist.

lossstr, callable, Standard=’absolute_error’

Zeichenketteneingaben, 'absolute_error' und 'squared_error' werden unterstützt, die den absoluten Fehler und den quadrierten Fehler pro Stichprobe finden.

Wenn loss eine aufrufbare Funktion ist, sollte es eine Funktion sein, die zwei Arrays als Eingabe nimmt, die tatsächlichen und vorhergesagten Werte, und ein 1D-Array zurückgibt, wobei der i-te Wert des Arrays dem Verlust für X[i] entspricht.

Wenn der Verlust bei einer Stichprobe größer als der residual_threshold ist, wird diese Stichprobe als Ausreißer klassifiziert.

Hinzugefügt in Version 0.18.

random_stateint, RandomState instance, default=None

Der Generator, der zur Initialisierung der Zentren verwendet wird. Geben Sie eine Ganzzahl für reproduzierbare Ausgaben über mehrere Funktionsaufrufe an. Siehe Glossar.

Attribute:
estimator_object

Endgültiges Modell, das an die von dem "besten" während der RANSAC-Stichprobennahme gefundenen Modell vorhergesagten Inlier angepasst wurde (Kopie des estimator-Objekts).

n_trials_int

Anzahl der zufälligen Auswahlversuche, bis eines der Abbruchkriterien erfüllt ist. Es ist immer <= max_trials.

inlier_mask_bool array der Form [n_samples]

Boolesche Maske der als True klassifizierten Inlier.

n_skips_no_inliers_int

Anzahl der Iterationen, die übersprungen wurden, weil keine Inlier gefunden wurden.

Hinzugefügt in Version 0.19.

n_skips_invalid_data_int

Anzahl der Iterationen, die aufgrund ungültiger Daten gemäß is_data_valid übersprungen wurden.

Hinzugefügt in Version 0.19.

n_skips_invalid_model_int

Anzahl der Iterationen, die aufgrund eines ungültigen Modells gemäß is_model_valid übersprungen wurden.

Hinzugefügt in Version 0.19.

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.

TheilSenRegressor

Robuster multivariater Regressionsestimator nach Theil-Sen.

SGDRegressor

Angepasst durch Minimierung eines regulierten empirischen Verlusts mit SGD.

Referenzen

Beispiele

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

Ein detaillierteres Beispiel finden Sie unter Robuste lineare Modellschätzung mit RANSAC

fit(X, y, sample_weight=None, **fit_params)[source]#

Modell mit dem RANSAC-Algorithmus anpassen.

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

Trainingsdaten.

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

Zielwerte.

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

Individuelle Gewichte für jede Stichprobe führen zu einem Fehler, wenn sample_weight übergeben wird und die fit-Methode des Estimators diese nicht unterstützt.

Hinzugefügt in Version 0.18.

**fit_paramsdict

Parameter, die über die Metadaten-Routing-API an die fit-Methode des Unter-Estimators weitergeleitet werden.

Hinzugefügt in Version 1.5: Nur verfügbar, wenn sklearn.set_config(enable_metadata_routing=True) gesetzt ist. Weitere Details finden Sie im Benutzerhandbuch für Metadaten-Routing.

Gibt zurück:
selfobject

Angepasster RANSACRegressor-Estimator.

Löst aus:
ValueError

Wenn kein gültiges Konsens-Set gefunden werden konnte. Dies tritt auf, wenn is_data_valid und is_model_valid für alle max_trials zufällig ausgewählten Teilmengen False zurückgeben.

get_metadata_routing()[source]#

Holt das Metadaten-Routing dieses Objekts.

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

Hinzugefügt in Version 1.5.

Gibt zurück:
routingMetadataRouter

Ein MetadataRouter, der die Routing-Informationen kapselt.

get_params(deep=True)[source]#

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, **params)[source]#

Vorhersage mit dem geschätzten Modell.

Dies ist ein Wrapper für estimator_.predict(X).

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

Eingabedaten.

**paramsdict

Parameter, die über die Metadaten-Routing-API an die predict-Methode des Unter-Estimators weitergeleitet werden.

Hinzugefügt in Version 1.5: Nur verfügbar, wenn sklearn.set_config(enable_metadata_routing=True) gesetzt ist. Weitere Details finden Sie im Benutzerhandbuch für Metadaten-Routing.

Gibt zurück:
yarray, Form = [n_samples] oder [n_samples, n_targets]

Gibt vorhergesagte Werte zurück.

score(X, y, **params)[source]#

Gibt den Score der Vorhersage zurück.

Dies ist ein Wrapper für estimator_.score(X, y).

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

Trainingsdaten.

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

Zielwerte.

**paramsdict

Parameter, die über die Metadaten-Routing-API an die score-Methode des Unter-Estimators weitergeleitet werden.

Hinzugefügt in Version 1.5: Nur verfügbar, wenn sklearn.set_config(enable_metadata_routing=True) gesetzt ist. Weitere Details finden Sie im Benutzerhandbuch für Metadaten-Routing.

Gibt zurück:
zfloat

Score der Vorhersage.

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

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)[source]#

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.