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())
[...]