check_estimator#
- sklearn.utils.estimator_checks.check_estimator(estimator=None, *, устаревший: 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)[источник]#
Проверить, соответствует ли оценщик соглашениям scikit-learn.
Эта функция запустит обширный набор тестов для проверки входных данных, форм и т.д., обеспечивая соответствие оценщика
scikit-learnсоглашения, подробно описанные в Создание собственного оценщика. Дополнительные тесты для классификаторов, регрессоров, кластеризации или преобразователей будут запущены, если класс Estimator наследует от соответствующего примеси из sklearn.base.scikit-learn также предоставляет специфичный для pytest декоратор,
parametrize_with_checks, что упрощает тестирование нескольких оценщиков.Проверки классифицируются в следующие группы:
Проверки API: набор проверок для обеспечения совместимости API с scikit-learn. См. https://scikit-learn.org/dev/developers/develop.html требование оценщиков scikit-learn.
legacy: набор проверок, которые постепенно будут сгруппированы в другие категории.
- Параметры:
- estimatorобъект оценщика
Экземпляр оценщика для проверки.
- устаревшийbool, по умолчанию=True
Включать ли устаревшие проверки. Со временем мы удаляем проверки из этой категории и перемещаем их в их конкретные категории.
Добавлено в версии 1.6.
- expected_failed_checksdict, по умолчанию=None
Словарь вида:
{ "check_name": "this check is expected to fail because ...", }
Где
"check_name"это название проверки, и"my reason"поэтому проверка не проходит.Добавлено в версии 1.6.
- on_skip“warn”, None, default=”warn”
Этот параметр управляет тем, что происходит при пропуске проверки.
“warn”: A
SkipTestWarningзаписывается в журнал, и продолжаются запущенные тесты.None: Предупреждение не записывается, и выполнение тестов продолжается.
Добавлено в версии 1.6.
- on_fail{“raise”, “warn”}, None, default=”raise”
Этот параметр управляет тем, что происходит при неудачной проверке.
“raise”: Исключение, вызванное первой неудачной проверкой, выбрасывается, и выполнение тестов прерывается. Это не включает тесты, которые ожидаются неудачными.
“warn”: A
EstimatorCheckFailedWarningзаписывается в журнал, и продолжаются запущенные тесты.None: исключение не вызывается и предупреждение не записывается.
Обратите внимание, что если
on_fail != "raise", исключение не вызывается, даже если проверки не пройдены. Вам нужно будет проверить возвращаемый результатcheck_estimatorдля проверки, не провалились ли какие-либо проверки.Добавлено в версии 1.6.
- callbackcallable, или None, по умолчанию=None
Этот колбэк будет вызываться с оценщиком и названием проверки, исключением (если есть), статусом проверки (xfail, failed, skipped, passed) и причиной ожидаемого сбоя, если проверка ожидается неудачной. Сигнатура вызываемого объекта должна быть:
def callback( estimator, check_name: str, exception: Exception, status: Literal["xfail", "failed", "skipped", "passed"], expected_to_fail: bool, expected_to_fail_reason: str, )
callbackне могут быть предоставлены вместе сon_fail="raise".Добавлено в версии 1.6.
- Возвращает:
- test_resultslist
Список словарей с результатами неудачных тестов, вида:
{ "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, }
- Вызывает:
- Исключение
Если
on_fail="raise", исключение, вызванное первой неудачной проверкой, выбрасывается, и выполнение тестов прерывается.Обратите внимание, что если
on_fail != "raise", исключение не вызывается, даже если проверки не пройдены. Вам нужно будет проверить возвращаемый результатcheck_estimatorдля проверки, не провалились ли какие-либо проверки.
Смотрите также
parametrize_with_checksСпецифичный для Pytest декоратор для параметризации проверок оценщиков.
estimator_checks_generatorГенератор, который выдает кортежи (оценщик, проверка).
Примеры
>>> from sklearn.utils.estimator_checks import check_estimator >>> from sklearn.linear_model import LogisticRegression >>> check_estimator(LogisticRegression()) [...]