cross_val_predict#

sklearn.model_selection.cross_val_predict(estimator, X, y=None, *, groups=None, cv=None, n_jobs=None, verbose=0, params=None, pre_dispatch='2*n_jobs', method='predict')[source]#

Generiert kreuzvalidierte Schätzungen für jeden Eingabedatenpunkt.

Die Daten werden gemäß dem Parameter `cv` aufgeteilt. Jede Stichprobe gehört zu genau einem Testdatensatz, und ihre Vorhersage wird mit einem auf dem entsprechenden Trainingsdatensatz angepassten Schätzer berechnet.

Das Einbeziehen dieser Vorhersagen in eine Bewertungsmetrik ist möglicherweise keine gültige Methode zur Messung der Generalisierungsleistung. Die Ergebnisse können sich von cross_validate und cross_val_score unterscheiden, es sei denn, alle Testdatensätze sind gleich groß und die Metrik lässt sich über Stichproben zerlegen.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
estimatorestimator

Die Schätzerinstanz, die zur Anpassung der Daten verwendet werden soll. Sie muss eine `fit`-Methode und die durch den Parameter `method` angegebene Methode implementieren.

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

Die Daten, die angepasst werden sollen. Kann zum Beispiel eine Liste oder ein Array mit mindestens 2 Dimensionen sein.

y{array-like, sparse matrix} von Form (n_samples,) oder (n_samples, n_outputs), Standardwert=None

Die Zielvariable, die im Falle von überwachtem Lernen vorhergesagt werden soll.

groupsarray-like of shape (n_samples,), default=None

Gruppenbezeichnungen für die Stichproben, die bei der Aufteilung des Datensatzes in Trainings-/Testdatensätze verwendet werden. Nur in Verbindung mit einer `Group`-Instanz von cv (z. B. GroupKFold) verwendet.

Geändert in Version 1.4: `groups` kann nur übergeben werden, wenn das Metadaten-Routing nicht über sklearn.set_config(enable_metadata_routing=True) aktiviert ist. Wenn Routing aktiviert ist, übergeben Sie `groups` zusammen mit anderen Metadaten über das Argument `params` an. Z. B.: cross_val_predict(..., params={'groups': groups}).

cvint, Kreuzvalidierungsgenerator oder iterierbar, Standardwert=None

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

  • None, um die Standard-5-fache Kreuzvalidierung zu verwenden,

  • int, um die Anzahl der Folds in einem (Stratified)KFold anzugeben,

  • CV-Splitter,

  • Ein iterierbares Objekt, das (Trainings-, Test-) Splits als Indizes-Arrays generiert.

Für ganzzahlige/None-Eingaben wird, wenn der Schätzer ein Klassifikator ist und `y` entweder binär oder mehrklassig ist, StratifiedKFold verwendet. In allen anderen Fällen wird KFold verwendet. Diese Splitter werden mit `shuffle=False` instanziiert, sodass die Splits über Aufrufe hinweg gleich sind.

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.

n_jobsint, default=None

Anzahl der gleichzeitig auszuführenden Jobs. Das Training des Schätzers und die Vorhersage werden über die Kreuzvalidierungs-Splits parallelisiert. `None` bedeutet 1, es sei denn, es befindet sich in einem joblib.parallel_backend Kontext. `-1` bedeutet die Verwendung aller Prozessoren. Weitere Informationen finden Sie im Glossar.

verboseint, default=0

Die Ausführlichkeitsstufe.

paramsdict, Standardwert=None

Parameter, die an die `fit`-Methode des zugrunde liegenden Schätzers und den CV-Splitter übergeben werden sollen.

Hinzugefügt in Version 1.4.

pre_dispatchint oder str, Standardwert=’2*n_jobs’

Steuert die Anzahl der Jobs, die während der parallelen Ausführung übermittelt werden. Die Verringerung dieser Zahl kann nützlich sein, um eine Explosion des Speicherverbrauchs zu vermeiden, wenn mehr Jobs übermittelt werden, als CPUs verarbeiten können. Dieser Parameter kann sein

  • None, in welchem Fall alle Jobs sofort erstellt und gestartet werden. Verwenden Sie dies für leichtgewichtige und schnell laufende Jobs, um Verzögerungen durch bedarfsweises Starten der Jobs zu vermeiden.

  • Eine Ganzzahl, die die genaue Anzahl der gestarteten Gesamtjobs angibt

  • Ein String, der einen Ausdruck als Funktion von n_jobs angibt, wie z. B. „2*n_jobs“

method{‘predict’, ‘predict_proba’, ‘predict_log_proba’, ‘decision_function’}, Standardwert=’predict’

Die Methode, die von `estimator` aufgerufen werden soll.

Gibt zurück:
predictionsndarray

Dies ist das Ergebnis des Aufrufs von `method`. Form

  • Wenn `method` „predict“ ist und im Sonderfall, dass `method` „decision_function“ ist und das Ziel binär ist: (n_samples,)

  • Wenn `method` eine der folgenden ist {‘predict_proba’, ‘predict_log_proba’, ‘decision_function’} (außer dem Sonderfall oben): (n_samples, n_classes)

  • Wenn `estimator` multioutput ist, wird eine zusätzliche Dimension ‚n_outputs‘ am Ende jeder obigen Form hinzugefügt.

Siehe auch

cross_val_score

Berechnet den Score für jeden CV-Split.

cross_validate

Berechnet einen oder mehrere Scores und Zeitmessungen für jeden CV-Split.

Anmerkungen

Wenn ein oder mehrere Klassen in einem Trainingsabschnitt fehlen, muss allen Instanzen für diese Klasse ein Standard-Score zugewiesen werden, wenn `method` Spalten pro Klasse erzeugt, wie z. B. {‘decision_function’, ‘predict_proba’, ‘predict_log_proba’}. Für `predict_proba` ist dieser Wert 0. Um einen endlichen Output zu gewährleisten, approximieren wir in anderen Fällen die negative Unendlichkeit durch den minimalen endlichen Fließkommawert für den Datentyp.

Beispiele

>>> from sklearn import datasets, linear_model
>>> from sklearn.model_selection import cross_val_predict
>>> diabetes = datasets.load_diabetes()
>>> X = diabetes.data[:150]
>>> y = diabetes.target[:150]
>>> lasso = linear_model.Lasso()
>>> y_pred = cross_val_predict(lasso, X, y, cv=3)

Ein detailliertes Beispiel für die Verwendung von `cross_val_predict` zur Visualisierung von Vorhersagefehlern finden Sie unter Plotting Cross-Validated Predictions.