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_validateundcross_val_scoreunterscheiden, 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)KFoldanzugeben,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,
StratifiedKFoldverwendet. In allen anderen Fällen wirdKFoldverwendet. 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_backendKontext. `-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_scoreBerechnet den Score für jeden CV-Split.
cross_validateBerechnet 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.