parametrize_with_checks#
- sklearn.utils.estimator_checks.parametrize_with_checks(estimators, *, legacy: bool = True, expected_failed_checks: Callable | None = None, xfail_strict: bool | None = None)[Quelle]#
Pytest-spezifischer Decorator zum Parametrisieren von Schätzer-Checks.
Tests werden in die folgenden Gruppen kategorisiert
API-Tests: Eine Reihe von Tests, um die API-Kompatibilität mit scikit-learn sicherzustellen. Beachten Sie https://scikit-learn.de/dev/developers/develop.html als Voraussetzung für scikit-learn-Estimators.
legacy: Eine Reihe von Tests, die schrittweise in andere Kategorien gruppiert werden.
Die
idjedes Tests ist so eingestellt, dass sie eine pprint-Version des Estimators und des Namens des Tests mit seinen Schlüsselwortargumenten ist. Dies ermöglicht die Verwendung vonpytest -k, um anzugeben, welche Tests ausgeführt werden sollen.pytest test_check_estimators.py -k check_estimators_fit_returns_self
- Parameter:
- estimatorsListe von Estimator-Instanzen
Estimators, für die Tests generiert werden sollen.
Geändert in Version 0.24: Das Übergeben einer Klasse wurde in Version 0.23 als veraltet markiert und die Unterstützung für Klassen wurde in 0.24 entfernt. Übergeben Sie stattdessen eine Instanz.
Hinzugefügt in Version 0.24.
- 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_checksAufrufbar, Standard=None
Ein aufrufbares Objekt, das einen Estimator als Eingabe nimmt und ein Wörterbuch der Form zurückgibt
{ "check_name": "my reason", }
Dabei ist
"check_name"der Name des Tests und"my reason"der Grund für das Fehlschlagen des Tests. Diese Tests werden als xfail markiert, wenn der Test fehlschlägt.Hinzugefügt in Version 1.6.
- xfail_strictbool, Standard=None
Ob Tests im xfail strict-Modus ausgeführt werden sollen. Wenn True, führen Tests, die voraussichtlich fehlschlagen, aber tatsächlich erfolgreich sind, zu einem Testfehler. Wenn False, werden unerwartet erfolgreiche Tests als xpass markiert. Wenn None, wird das Standardverhalten von pytest verwendet.
Hinzugefügt in Version 1.8.
- Gibt zurück:
- decorator
pytest.mark.parametrize
- decorator
Siehe auch
check_estimatorPrüft, ob der Schätzer den Konventionen von Scikit-learn entspricht.
Beispiele
>>> from sklearn.utils.estimator_checks import parametrize_with_checks >>> from sklearn.linear_model import LogisticRegression >>> from sklearn.tree import DecisionTreeRegressor
>>> @parametrize_with_checks([LogisticRegression(), ... DecisionTreeRegressor()]) ... def test_sklearn_compatible_estimator(estimator, check): ... check(estimator)