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 durchstop_scoredefinierte 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
estimatorNone ist, wirdLinearRegressionfü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 Anzahlceil(min_samples * X.shape[0])fürmin_samples < 1. Dies wird typischerweise als die minimale Anzahl von Stichproben gewählt, die zur Schätzung des gegebenenestimatornotwendig sind. Standardmäßig wird einLinearRegression-Estimator angenommen undmin_samplesalsX.shape[1] + 1gewählt. Dieser Parameter ist stark vom Modell abhängig, daher muss der Benutzer einen Wert angeben, wenn ein anderer Estimator alsLinearRegressionverwendet 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
ygewä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 mitis_data_valid.is_model_validsollte 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_validoder ungültige Modelle gemäßis_model_validdefiniert 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
losseine 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ürX[i]entspricht.Wenn der Verlust bei einer Stichprobe größer als der
residual_thresholdist, 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
Trueklassifizierten 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
XMerkmalnamen hat, die alle Zeichenketten sind.Hinzugefügt in Version 1.0.
Siehe auch
HuberRegressorLineares Regressionsmodell, das robust gegenüber Ausreißern ist.
TheilSenRegressorRobuster multivariater Regressionsestimator nach Theil-Sen.
SGDRegressorAngepasst 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_validundis_model_validfür allemax_trialszufä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=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:
- sample_weightstr, True, False, oder None, Standardwert=sklearn.utils.metadata_routing.UNCHANGED
Metadaten-Routing für den Parameter
sample_weightinfit.
- 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.