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 id jedes 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 von pytest -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:
decoratorpytest.mark.parametrize

Siehe auch

check_estimator

Prü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)