parametrize_with_checks#
- sklearn.utils.estimator_checks.parametrize_with_checks(estimators, *, legacy: bool = True, expected_failed_checks: Callable | None = None)[原始碼]#
用於參數化估計器檢查的 Pytest 特定裝飾器。
檢查分為以下幾類
API 檢查:一組檢查,以確保與 scikit-learn 的 API 相容性。請參閱 https://scikit-learn.dev.org.tw/dev/developers/develop.html,這是 scikit-learn 估計器的要求。
legacy:一組檢查,會逐步歸類到其他類別中。
每個檢查的
id
都會設定為估計器的 pprint 版本以及檢查的名稱及其關鍵字參數。這允許使用pytest -k
來指定要運行的測試pytest test_check_estimators.py -k check_estimators_fit_returns_self
- 參數:
- estimators估計器實例列表
要為其生成檢查的估計器。
在 0.24 版中變更:在 0.23 版中已棄用傳遞類別,並在 0.24 版中移除了對類別的支援。請改為傳遞實例。
在 0.24 版中新增。
- legacybool,預設值為 True
是否包含 legacy 檢查。隨著時間的推移,我們會從此類別中刪除檢查,並將它們移至其特定類別。
在 1.6 版中新增。
- expected_failed_checkscallable,預設值為 None
一個可調用物件,它將估計器作為輸入,並返回以下形式的字典
{ "check_name": "my reason", }
其中
"check_name"
是檢查的名稱,而"my reason"
是檢查失敗的原因。如果檢查失敗,這些測試將標記為 xfail。在 1.6 版中新增。
- 返回:
- decorator
pytest.mark.parametrize
- decorator
另請參閱
check_estimator
檢查估計器是否符合 scikit-learn 慣例。
範例
>>> 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)