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)