check_is_fitted#
- sklearn.utils.validation.check_is_fitted(estimator, attributes=None, *, msg=None, all_or_any=<built-in function all>)#
执行估计器的is_fitted验证。
检查估计器是否已拟合,方法是验证是否存在以尾部下划线结尾的拟合属性,否则会引发带有给定消息的NotFittedError。
如果估计器没有设置任何以尾部下划线结尾的属性,它可以定义一个返回布尔值的
__sklearn_is_fitted__
方法,以指定估计器是否已拟合。请参阅:ref:sphx_glr_auto_examples_developing_estimators_sklearn_is_fitted.py
,了解如何使用API的示例。- Parameters:
- estimator估计器实例
对其执行检查的估计器实例。
- attributesstr, list或tuple of str, default=None
给定的属性名称,可以是字符串或字符串的列表/元组 例如:
["coef_", "estimator_", ...], "coef_"
如果为
None
,则如果存在以尾部下划线结尾且不以双下划线开头的属性,则认为estimator
已拟合。- msgstr, default=None
默认错误消息是:“This %(name)s instance is not fitted yet. Call ‘fit’ with appropriate arguments before using this estimator.”
对于自定义消息,如果消息字符串中存在”%(name)s”,则将其替换为估计器名称。
例如:“Estimator, %(name)s, must be fitted before sparsifying”。
- all_or_anycallable, {all, any}, default=all
指定是否必须存在所有或任何给定的属性。
- Raises:
- TypeError
如果估计器是类或不是估计器实例
- NotFittedError
如果未找到属性。
Examples
>>> from sklearn.linear_model import LogisticRegression >>> from sklearn.utils.validation import check_is_fitted >>> from sklearn.exceptions import NotFittedError >>> lr = LogisticRegression() >>> try: ... check_is_fitted(lr) ... except NotFittedError as exc: ... print(f"Model is not fitted yet.") Model is not fitted yet. >>> lr.fit([[1, 2], [1, 3]], [1, 0]) LogisticRegression() >>> check_is_fitted(lr)
Gallery examples#
__sklearn_is_fitted__ 作为开发者 API
__sklearn_is_fitted__ 作为开发者 API