check_estimator#
- sklearn.utils.estimator_checks.check_estimator(estimator=None, *, legacy: bool = True, expected_failed_checks: dict[str, str] | None = None, on_skip: Literal['warn'] | None = 'warn', on_fail: Literal['raise', 'warn'] | None = 'raise', callback: Callable | None = None)[Quelle]#
Prüft, ob der Schätzer den Konventionen von Scikit-learn entspricht.
Diese Funktion führt eine umfangreiche Testsuite für Eingabevalidierung, Formen usw. aus und stellt sicher, dass der Estimator den
scikit-learn-Konventionen entspricht, wie sie unter Erstellung eines eigenen Estimators beschrieben sind. Zusätzliche Tests für Klassifikatoren, Regressoren, Clustering oder Transformer werden ausgeführt, wenn die Estimator-Klasse von der entsprechenden Mixin-Klasse aus sklearn.base erbt.scikit-learn bietet auch einen Pytest-spezifischen Decorator,
parametrize_with_checks, der das Testen mehrerer Estimators erleichtert.Tests werden in folgende Gruppen eingeteilt
API-Checks: Eine Reihe von Tests, um die API-Kompatibilität mit scikit-learn sicherzustellen. Siehe https://scikit-learn.de/dev/developers/develop.html für die Anforderungen an scikit-learn Estimators.
legacy: Eine Reihe von Tests, die nach und nach in andere Kategorien gruppiert werden.
- Parameter:
- estimatorEstimator-Objekt
Estimator-Instanz zum Überprüfen.
- legacybool, Standard=True
Ob Legacy-Tests eingeschlossen werden sollen. Im Laufe der Zeit werden Tests aus dieser Kategorie entfernt und in ihre spezifische Kategorie verschoben.
Hinzugefügt in Version 1.6.
- expected_failed_checksdict, Standard=None
Ein Wörterbuch der Form
{ "check_name": "this check is expected to fail because ...", }
Wobei
"check_name"der Name des Tests und"my reason"der Grund ist, warum der Test fehlschlägt.Hinzugefügt in Version 1.6.
- on_skip“warn”, None, Standard=”warn”
Dieser Parameter steuert, was passiert, wenn ein Test übersprungen wird.
“warn”: Eine
SkipTestWarningwird protokolliert und die Ausführung der Tests wird fortgesetzt.None: Keine Warnung wird protokolliert und die Ausführung der Tests wird fortgesetzt.
Hinzugefügt in Version 1.6.
- on_fail{“raise”, “warn”}, None, Standard=”raise”
Dieser Parameter steuert, was passiert, wenn ein Test fehlschlägt.
“raise”: Die vom ersten fehlschlagenden Test ausgelöste Ausnahme wird ausgelöst und die Ausführung der Tests wird abgebrochen. Dies schließt keine Tests ein, die voraussichtlich fehlschlagen.
“warn”: Eine
EstimatorCheckFailedWarningwird protokolliert und die Ausführung der Tests wird fortgesetzt.None: Es wird keine Ausnahme ausgelöst und keine Warnung protokolliert.
Beachten Sie, dass, wenn
on_fail != "raise", keine Ausnahme ausgelöst wird, auch wenn die Tests fehlschlagen. Sie müssen das Rückgabeergebnis voncheck_estimatorüberprüfen, um festzustellen, ob Tests fehlgeschlagen sind.Hinzugefügt in Version 1.6.
- callbackcallable oder None, Standard=None
Diese Callback-Funktion wird mit dem Estimator und dem Testnamen, der Ausnahme (falls vorhanden), dem Status des Tests (xfail, failed, skipped, passed) und dem Grund für das erwartete Fehlschlagen aufgerufen, wenn der Test voraussichtlich fehlschlägt. Die Signatur der Callback-Funktion muss lauten:
def callback( estimator, check_name: str, exception: Exception, status: Literal["xfail", "failed", "skipped", "passed"], expected_to_fail: bool, expected_to_fail_reason: str, )
callbackkann nicht zusammen miton_fail="raise"bereitgestellt werden.Hinzugefügt in Version 1.6.
- Gibt zurück:
- test_resultslist
Liste von Dictionaries mit den Ergebnissen der fehlgeschlagenen Tests, der Form
{ "estimator": estimator, "check_name": check_name, "exception": exception, "status": status (one of "xfail", "failed", "skipped", "passed"), "expected_to_fail": expected_to_fail, "expected_to_fail_reason": expected_to_fail_reason, }
- Löst aus:
- Ausnahme
Wenn
on_fail="raise", wird die vom ersten fehlschlagenden Test ausgelöste Ausnahme ausgelöst und die Ausführung der Tests wird abgebrochen.Beachten Sie, dass, wenn
on_fail != "raise", keine Ausnahme ausgelöst wird, auch wenn die Tests fehlschlagen. Sie müssen das Rückgabeergebnis voncheck_estimatorüberprüfen, um festzustellen, ob Tests fehlgeschlagen sind.
Siehe auch
parametrize_with_checksPytest-spezifischer Decorator zum Parametrisieren von Schätzer-Checks.
estimator_checks_generatorGenerator, der (estimator, check) Tupel liefert.
Beispiele
>>> from sklearn.utils.estimator_checks import check_estimator >>> from sklearn.linear_model import LogisticRegression >>> check_estimator(LogisticRegression()) [...]