cross_validate#
- sklearn.model_selection.cross_validate(estimator, X, y=None, *, groups=None, scoring=None, cv=None, n_jobs=None, verbose=0, params=None, pre_dispatch='2*n_jobs', return_train_score=False, return_estimator=False, return_indices=False, error_score=nan)[Quelle]#
Bewertet Metrik(en) durch Kreuzvalidierung und erfasst auch Fit-/Score-Zeiten.
Lesen Sie mehr im Benutzerhandbuch.
- Parameter:
- estimatorEstimator-Objekt, das ‘fit’ implementiert
Das zu verwendende Objekt zur Anpassung der Daten.
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die zu fittenden Daten. Kann zum Beispiel eine Liste oder ein Array sein.
- yarray-like der 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:
groupskann nur übergeben werden, wenn das Metadaten-Routing nicht übersklearn.set_config(enable_metadata_routing=True)aktiviert ist. Wenn das Routing aktiviert ist, übergeben Siegroupszusammen mit anderen Metadaten über dasparams-Argument. Z.B.:cross_validate(..., params={'groups': groups}).- scoringstr, callable, list, tuple, or dict, default=None
Strategie zur Bewertung der Leistung des
estimatorüber Kreuzvalidierungs-Splits.Wenn
scoringeinen einzelnen Score darstellt, kann man verwenden:einen einzelnen String verwenden (siehe String-Namen für Scorer);
ein aufrufbares Objekt (siehe Aufrufbare Scorer), das einen einzelnen Wert zurückgibt.
None, das standardmäßige Bewertungskriterium desestimatorwird verwendet.
Wenn
scoringmehrere Scores darstellt, kann maneine Liste oder ein Tupel eindeutiger Strings;
ein callable, der ein Dictionary zurückgibt, wobei die Schlüssel die Namen der Metriken und die Werte die Score-Werte der Metriken sind;
ein Wörterbuch mit Metriknamen als Schlüssel und aufrufbaren Objekten als Werte.
Siehe Spezifizierung mehrerer Metriken zur Auswertung für ein Beispiel.
- 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,Eine iterierbare Liste, die (Trainings-, Test-) Splits als Indizes-Arrays liefert.
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 parallel auszuführenden Jobs. Das Trainieren des Schätzers und die Berechnung des Scores werden über die Kreuzvalidierungs-Splits parallelisiert.
Nonebedeutet 1, es sei denn, Sie befinden sich in einemjoblib.parallel_backend-Kontext.-1bedeutet die Verwendung aller Prozessoren. Siehe Glossar für weitere Details.- verboseint, default=0
Die Ausführlichkeitsstufe.
- paramsdict, Standardwert=None
Parameter, die an die zugrundeliegenden
fit-Methode des Schätzers, den Scorer und den CV-Splitter übergeben werden.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
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“
- return_train_scorebool, default=False
Ob Trainings-Scores einbezogen werden sollen. Die Berechnung von Trainings-Scores dient dazu, Einblicke zu gewinnen, wie sich verschiedene Parametereinstellungen auf den Überanpassungs-/Unteranpassungs-Kompromiss auswirken. Die Berechnung der Scores auf dem Trainingsdatensatz kann jedoch rechenintensiv sein und ist nicht unbedingt erforderlich, um die Parameter auszuwählen, die die beste Generalisierungsleistung erzielen.
Hinzugefügt in Version 0.19.
Geändert in Version 0.21: Der Standardwert wurde von
TrueaufFalsegeändert- return_estimatorbool, default=False
Ob die auf jedem Split gefitteten Schätzer zurückgegeben werden sollen.
Hinzugefügt in Version 0.20.
- return_indicesbool, default=False
Ob die für jeden Split ausgewählten Trainings-/Test-Indizes zurückgegeben werden sollen.
Hinzugefügt in Version 1.3.
- error_score‘raise’ oder numerisch, Standard=np.nan
Wert, der der Punktzahl zugewiesen wird, wenn beim Anpassen des Schätzers ein Fehler auftritt. Wenn auf 'raise' gesetzt, wird der Fehler ausgelöst. Wenn ein numerischer Wert angegeben wird, wird FitFailedWarning ausgelöst.
Hinzugefügt in Version 0.20.
- Gibt zurück:
- scoresdict von float-Arrays der Form (n_splits,)
Array von Scores des Schätzers für jeden Durchlauf der Kreuzvalidierung.
Es wird ein Dict von Arrays zurückgegeben, das die Score-/Zeit-Arrays für jeden Scorer enthält. Die möglichen Schlüssel für dieses
dictsindtest_scoreDas Score-Array für Test-Scores auf jedem CV-Split. Das Suffix
_scoreintest_scoreändert sich zu einer spezifischen Metrik wietest_r2odertest_auc, wenn es mehrere Scoring-Metriken im Scoring-Parameter gibt.train_scoreDas Score-Array für Trainings-Scores auf jedem CV-Split. Das Suffix
_scoreintrain_scoreändert sich zu einer spezifischen Metrik wietrain_r2odertrain_auc, wenn es mehrere Scoring-Metriken im Scoring-Parameter gibt. Dies ist nur verfügbar, wenn der Parameterreturn_train_scoreaufTruegesetzt ist.fit_timeDie Zeit für das Fitten des Schätzers auf dem Trainingsdatensatz für jeden CV-Split.
score_timeDie Zeit für das Bewerten des Schätzers auf dem Testdatensatz für jeden CV-Split. (Hinweis: Die Zeit für die Bewertung auf dem Trainingsdatensatz ist nicht enthalten, auch wenn
return_train_scoreaufTruegesetzt ist).estimatorDie Schätzerobjekte für jeden CV-Split. Dies ist nur verfügbar, wenn der Parameter
return_estimatoraufTruegesetzt ist.indicesDie Positions-Indizes für Training/Test für jeden CV-Split. Es wird ein Wörterbuch zurückgegeben, dessen Schlüssel entweder
"train"oder"test"sind und die zugehörigen Werte eine Liste von NumPy-Arrays mit Integer-Datentyp und den Indizes sind. Verfügbar nur, wennreturn_indices=True.
Siehe auch
cross_val_scoreFührt die Kreuzvalidierung für die Auswertung einer einzelnen Metrik durch.
cross_val_predictErmittelt Vorhersagen aus jedem Split der Kreuzvalidierung zu Diagnosezwecken.
sklearn.metrics.make_scorerErstellt einen Scorer aus einer Leistungsmetrik oder Verlustfunktion.
Beispiele
>>> from sklearn import datasets, linear_model >>> from sklearn.model_selection import cross_validate >>> diabetes = datasets.load_diabetes() >>> X = diabetes.data[:150] >>> y = diabetes.target[:150] >>> lasso = linear_model.Lasso()
Auswertung einer einzelnen Metrik mit
cross_validate>>> cv_results = cross_validate(lasso, X, y, cv=3) >>> sorted(cv_results.keys()) ['fit_time', 'score_time', 'test_score'] >>> cv_results['test_score'] array([0.3315057 , 0.08022103, 0.03531816])
Auswertung mehrerer Metriken mit
cross_validate(siehe Dokumentation desscoring-Parameters für weitere Informationen)>>> scores = cross_validate(lasso, X, y, cv=3, ... scoring=('r2', 'neg_mean_squared_error'), ... return_train_score=True) >>> print(scores['test_neg_mean_squared_error']) [-3635.5 -3573.3 -6114.7] >>> print(scores['train_r2']) [0.28009951 0.3908844 0.22784907]
Galeriebeispiele#
Unterstützung für kategorische Merkmale in Gradient Boosting
Häufige Fallstricke bei der Interpretation von Koeffizienten linearer Modelle
Klassen-Likelihood-Verhältnisse zur Messung der Klassifikationsleistung
Receiver Operating Characteristic (ROC) mit Kreuzvalidierung
Post-hoc-Anpassung des Cut-off-Punkts der Entscheidungskfunktion
Übersicht über Multiklassen-Training Meta-Estimator